summaryrefslogtreecommitdiffstats
path: root/WebCore/manual-tests
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/manual-tests')
-rw-r--r--WebCore/manual-tests/NPN_Invoke/main.c26
-rw-r--r--WebCore/manual-tests/WebKitSite.webarchivebin0 -> 133460 bytes
-rw-r--r--WebCore/manual-tests/animated-gif-looping.html16
-rw-r--r--WebCore/manual-tests/chromium/no-autofill-on-readonly.html33
-rw-r--r--WebCore/manual-tests/chromium/suggestions-popup-font-change.html21
-rw-r--r--WebCore/manual-tests/clearTimeout-crash-bug29832.html20
-rw-r--r--WebCore/manual-tests/compositing/accel-comp-iframe-tab-repaint.html15
-rw-r--r--WebCore/manual-tests/compositing/resources/flash-frame.html3
-rw-r--r--WebCore/manual-tests/compositing/resources/tab-repaint-part-2.html18
-rw-r--r--WebCore/manual-tests/crash-and-no-repaint-after-wake-from-sleep.html186
-rw-r--r--WebCore/manual-tests/crash-on-find-with-no-selection.html12
-rw-r--r--WebCore/manual-tests/cur-hotspot.html12
-rw-r--r--WebCore/manual-tests/divx-plugin-fails-to-draw.html12
-rw-r--r--WebCore/manual-tests/dom/document-write-synchronous-after-page-load.html23
-rw-r--r--WebCore/manual-tests/dom/form-control-for-label.html12
-rw-r--r--WebCore/manual-tests/dom/progressbar.html8
-rw-r--r--WebCore/manual-tests/focus-change-between-key-events.html24
-rw-r--r--WebCore/manual-tests/image-prefetch-stress.html20
-rw-r--r--WebCore/manual-tests/ime-keydown-preventdefault.html27
-rw-r--r--WebCore/manual-tests/layoutroot_detach.xml33
-rw-r--r--WebCore/manual-tests/localstorage-empty-database.html13
-rw-r--r--WebCore/manual-tests/match-marker-rects.html33
-rw-r--r--WebCore/manual-tests/media-elements/video-replaces-poster.html15
-rw-r--r--WebCore/manual-tests/modal-dialog-blur-selfclose.html3
-rw-r--r--WebCore/manual-tests/modal-dialog-blur.html34
-rw-r--r--WebCore/manual-tests/no-listbox-rendering.html32
-rw-r--r--WebCore/manual-tests/no-repaint-after-wake-from-sleep.html183
-rw-r--r--WebCore/manual-tests/onbeforeunload-focused-iframe.html31
-rw-r--r--WebCore/manual-tests/onfocus-alert-blinking-caret.html8
-rw-r--r--WebCore/manual-tests/plugin-in-iframe-scroll.html7
-rw-r--r--WebCore/manual-tests/plugin-visible-rect-change.html25
-rw-r--r--WebCore/manual-tests/plugins/flip4mac-update-alert-over-navigation.html30
-rw-r--r--WebCore/manual-tests/plugins/object-clipping.html22
-rw-r--r--WebCore/manual-tests/plugins/timeout-dialog-displayed-over-navigation.html25
-rw-r--r--WebCore/manual-tests/plugins/timeout-dialog-displayed-over-navigation.swfbin0 -> 5705 bytes
-rw-r--r--WebCore/manual-tests/quit-inside-unload.html14
-rw-r--r--WebCore/manual-tests/resources/animated-10x.gifbin0 -> 1253 bytes
-rw-r--r--WebCore/manual-tests/resources/animated-infinite.gifbin0 -> 1661 bytes
-rw-r--r--WebCore/manual-tests/resources/cur-hotspot.curbin0 -> 4286 bytes
-rw-r--r--WebCore/manual-tests/resources/focused-iframe.html12
-rw-r--r--WebCore/manual-tests/resources/non-animated.gifbin0 -> 1642 bytes
-rw-r--r--WebCore/manual-tests/resources/plugin-in-iframe-scroll-iframe.html6
-rw-r--r--WebCore/manual-tests/resources/video-tab.html1
-rw-r--r--WebCore/manual-tests/select_dropdown_box_alignment.html30
-rw-r--r--WebCore/manual-tests/spatial-navigation/frameset.html7
-rwxr-xr-xWebCore/manual-tests/spatial-navigation/links.html8
-rwxr-xr-xWebCore/manual-tests/spatial-navigation/spatial-navigation-test-cases.html147
-rw-r--r--WebCore/manual-tests/style-keypress-events.html38
-rw-r--r--WebCore/manual-tests/svg-tooltip.svg62
-rw-r--r--WebCore/manual-tests/video-in-non-frontmost-tab.html4
-rw-r--r--WebCore/manual-tests/video-rtsp.html11
-rw-r--r--WebCore/manual-tests/visited-link-new-window.html18
-rw-r--r--WebCore/manual-tests/webarchive-test.html9
-rw-r--r--WebCore/manual-tests/win/horizontal-scroll-composited.html8
-rw-r--r--WebCore/manual-tests/win/milliondollar.html137
55 files changed, 1430 insertions, 64 deletions
diff --git a/WebCore/manual-tests/NPN_Invoke/main.c b/WebCore/manual-tests/NPN_Invoke/main.c
index f149f54..4a6d706 100644
--- a/WebCore/manual-tests/NPN_Invoke/main.c
+++ b/WebCore/manual-tests/NPN_Invoke/main.c
@@ -37,16 +37,16 @@
NPNetscapeFuncs *browser;
-NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved);
+NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t 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_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* 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);
+int32_t NPP_WriteReady(NPP instance, NPStream* stream);
+int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t 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);
+int16_t 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);
@@ -153,7 +153,7 @@ int main(NPNetscapeFuncs *browserFuncs, NPPluginFuncs *pluginFuncs, NPP_Shutdown
return NPERR_NO_ERROR;
}
-NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved)
+NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved)
{
// Call window.alert("Success!")
NPError error;
@@ -180,7 +180,7 @@ NPError NPP_SetWindow(NPP instance, NPWindow* window)
return NPERR_NO_ERROR;
}
-NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype)
+NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype)
{
*stype = NP_ASFILEONLY;
return NPERR_NO_ERROR;
@@ -191,12 +191,12 @@ NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason)
return NPERR_NO_ERROR;
}
-int32 NPP_WriteReady(NPP instance, NPStream* stream)
+int32_t NPP_WriteReady(NPP instance, NPStream* stream)
{
return 0;
}
-int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer)
+int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer)
{
return 0;
}
@@ -210,7 +210,7 @@ void NPP_Print(NPP instance, NPPrint* platformPrint)
}
-int16 NPP_HandleEvent(NPP instance, void* event)
+int16_t NPP_HandleEvent(NPP instance, void* event)
{
return 1;
}
@@ -234,11 +234,11 @@ NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value)
FunctionPointer functionPointerForTVector(TransitionVector tvp)
{
- const uint32 temp[6] = {0x3D800000, 0x618C0000, 0x800C0000, 0x804C0004, 0x7C0903A6, 0x4E800420};
- uint32 *newGlue = NULL;
+ const uint32_t temp[6] = {0x3D800000, 0x618C0000, 0x800C0000, 0x804C0004, 0x7C0903A6, 0x4E800420};
+ uint32_t *newGlue = NULL;
if (tvp != NULL) {
- newGlue = (uint32 *)malloc(sizeof(temp));
+ newGlue = (uint32_t *)malloc(sizeof(temp));
if (newGlue != NULL) {
unsigned i;
for (i = 0; i < 6; i++) newGlue[i] = temp[i];
diff --git a/WebCore/manual-tests/WebKitSite.webarchive b/WebCore/manual-tests/WebKitSite.webarchive
new file mode 100644
index 0000000..d9f9c88
--- /dev/null
+++ b/WebCore/manual-tests/WebKitSite.webarchive
Binary files differ
diff --git a/WebCore/manual-tests/animated-gif-looping.html b/WebCore/manual-tests/animated-gif-looping.html
new file mode 100644
index 0000000..e98a6d9
--- /dev/null
+++ b/WebCore/manual-tests/animated-gif-looping.html
@@ -0,0 +1,16 @@
+<html>
+<body>
+<div>
+ <img src="./resources/animated-infinite.gif">
+ <p>This should animate.</p>
+</div>
+<div>
+ <img src="./resources/non-animated.gif">
+ <p>This should not animate and you should see a cross.</p>
+</div
+<div>
+ <img src="./resources/animated-10x.gif">
+ <p>This animation should loop 10 times.</p>
+</div
+</body>
+</html>
diff --git a/WebCore/manual-tests/chromium/no-autofill-on-readonly.html b/WebCore/manual-tests/chromium/no-autofill-on-readonly.html
new file mode 100644
index 0000000..9724aaa
--- /dev/null
+++ b/WebCore/manual-tests/chromium/no-autofill-on-readonly.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+</head>
+<body>
+ <p>This page tests that the autofill popup is not shown for read-only and disabled text inputs.</p>
+ <p>Do the following:</p>
+ <ul>
+ <li>Enter a name in the input text in Form 1 and press submit. This is so the autofill has a value for that field.</li>
+ <li>Reload the page so the input text is empty. Click twice on the Form 1 text input. An autofill popup with the name you entered previously should be shown.</li>
+ <li>Click twice on the Form 2 text input. No autofill popup should be shown.</li>
+ <li>Click twice on the Form 3 text input. No autofill popup should be shown.</li>
+ </ul>
+
+ <h1>Form 1 (text input non read-only)</h1>
+ <form action="no-autofill-on-readonly.html">
+ Name:<input type="text" name="name"></input><br>
+ <input type="submit"></input>
+ </form>
+
+ <h1>Form 2 (text input read-only)</h1>
+ <form action="no-autofill-on-readonly.html">
+ Name:<input type="text" name="name" READONLY></input><br>
+ <input type="submit"></input>
+ </form>
+
+ <h1>Form 3 (text input disabled)</h1>
+ <form action="no-autofill-on-readonly.html">
+ Name:<input type="text" name="name" DISABLED></input><br>
+ <input type="submit"></input>
+ </form>
+
+</body>
+</html>
diff --git a/WebCore/manual-tests/chromium/suggestions-popup-font-change.html b/WebCore/manual-tests/chromium/suggestions-popup-font-change.html
new file mode 100644
index 0000000..b85977a
--- /dev/null
+++ b/WebCore/manual-tests/chromium/suggestions-popup-font-change.html
@@ -0,0 +1,21 @@
+<html>
+<head>
+</head>
+<body>
+ <p>Verify that the font size in the suggestion popup matches the corresponding
+ input field, test passes if step 2 matches expected behavior.</p>
+ <ul>
+ <li>1. Type "abcd" in the text form and press enter.</li>
+ <li>2. Type "a" in the text form, suggestions popup should appear.
+ Verify that font size of text in suggestion popup is the same as in
+ the corresponding input form.
+ </li>
+ <li>3. Delete contents of input box, press Cntrl/+ [Command/+ on Mac]
+ to magnify the page contents. Repeat step 2, text size should still
+ match. </li>
+ </ul>
+ <form method="get" action="suggestions-popup-font-change.html" id="form">
+ <input name="s" id="s" style="font-size:x-large">
+ </form>
+</body>
+</html>
diff --git a/WebCore/manual-tests/clearTimeout-crash-bug29832.html b/WebCore/manual-tests/clearTimeout-crash-bug29832.html
new file mode 100644
index 0000000..d9ec5c7
--- /dev/null
+++ b/WebCore/manual-tests/clearTimeout-crash-bug29832.html
@@ -0,0 +1,20 @@
+<script>
+var w;
+function clear() {
+ w.clearTimeout(153);
+}
+
+function test() {
+ w = window.open("data:text/html,"+
+ "<script>" +
+ "function navigate() { location.href='data:text/html,<body>Close this page and wait.</body>'};" +
+ "setTimeout(navigate,0);</" +
+ "script>");
+
+ setInterval(clear, 0);
+}
+</script>
+<body>
+<p>This test reproduces the crash in DOMWindow::clearTimeout that happens when DOMWindow is disconnected from the Frame (as in back/forward cache expiration case tested here).
+<p>This is the link to the bug: <a href="https://bugs.webkit.org/show_bug.cgi?id=29832">https://bugs.webkit.org/show_bug.cgi?id=29832</a>
+<p>To reproduce the crash, click the link below, the popup window opens, which will immediately navigate to another one, so the b/f cache entry will be created. Close the popup window. Wait a few seconds (~10), for the page cache to start deleting pages it doesn't need - crash will happen.<br><a href="javascript:test()">Crash me!</a>
diff --git a/WebCore/manual-tests/compositing/accel-comp-iframe-tab-repaint.html b/WebCore/manual-tests/compositing/accel-comp-iframe-tab-repaint.html
new file mode 100644
index 0000000..35c9c34
--- /dev/null
+++ b/WebCore/manual-tests/compositing/accel-comp-iframe-tab-repaint.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<title>Accelerated compositing tab repaint bug</title>
+<style>
+body {
+ background-color: yellow;
+}
+</style>
+<h1>Accelerated compositing tab repaint bug</h1>
+<p>This test case checks for a repaint bug resulting from accelerated
+compositing of iframes on Mac. Follow these steps:</p>
+<ol>
+<li>Open <a href="resources/tab-repaint-part-2.html">this link</a> in a new tab.</li>
+<li>Close this tab.</li>
+<li>The new page should be blue.</li>
+</ol>
diff --git a/WebCore/manual-tests/compositing/resources/flash-frame.html b/WebCore/manual-tests/compositing/resources/flash-frame.html
new file mode 100644
index 0000000..34d9290
--- /dev/null
+++ b/WebCore/manual-tests/compositing/resources/flash-frame.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<title>Flash frame for repaint test</title>
+<embed src="../../resources/spinbox.swf">
diff --git a/WebCore/manual-tests/compositing/resources/tab-repaint-part-2.html b/WebCore/manual-tests/compositing/resources/tab-repaint-part-2.html
new file mode 100644
index 0000000..17cb6e7
--- /dev/null
+++ b/WebCore/manual-tests/compositing/resources/tab-repaint-part-2.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<title>Accelerated compositing tab repaint bug part 2</title>
+<style>
+body {
+ background-color: royalblue;
+}
+iframe {
+ border-width: 0px;
+ width: 400px;
+ height: 200px;
+}
+</style>
+<body>
+<ol>
+<li>This page should have a blue background.</li>
+</ol>
+<iframe src="../resources/flash-frame.html"></iframe>
+</body>
diff --git a/WebCore/manual-tests/crash-and-no-repaint-after-wake-from-sleep.html b/WebCore/manual-tests/crash-and-no-repaint-after-wake-from-sleep.html
new file mode 100644
index 0000000..c0ccb12
--- /dev/null
+++ b/WebCore/manual-tests/crash-and-no-repaint-after-wake-from-sleep.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>Test for Bugs 39295 and 39297</title>
+ <meta http-equiv="refresh" content="5">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="viewport" content="initial-scale=0.60, minimum-scale=0.60, maximum-scale=0.60">
+ <style type="text/css">
+
+ body {
+ font-family: 'Lucida Grande', Verdana, Arial;
+ font-size: 12px;
+ }
+
+ #stage {
+ margin: 150px auto;
+ width: 600px;
+ height: 400px;
+ /*
+
+ Setting the perspective of the contents of the stage
+ but not the stage itself
+
+ */
+ -webkit-perspective: 800;
+ }
+
+ #rotate {
+ margin: 0 auto;
+ width: 600px;
+ height: 400px;
+ /* Ensure that we're in 3D space */
+ -webkit-transform-style: preserve-3d;
+ /*
+ Make the whole set of rows use the x-axis spin animation
+ for a duration of 7 seconds, running infinitely and linearly
+ */
+ -webkit-animation-name: x-spin;
+ -webkit-animation-duration: 7s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ }
+
+ .ring {
+ margin: 0 auto;
+ height: 110px;
+ width: 600px;
+ -webkit-transform-style: preserve-3d;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ }
+
+ .ring > :nth-child(odd) {
+ background-color: #995C7F;
+ }
+
+ .ring > :nth-child(even) {
+ background-color: #835A99;
+ }
+
+ .poster {
+ position: absolute;
+ left: 250px;
+ width: 100px;
+ height: 100px;
+ opacity: 0.7;
+ color: rgba(0,0,0,0.9);
+ -webkit-border-radius: 10px;
+ }
+
+ .poster > p {
+ font-family: 'Georgia', serif;
+ font-size: 36px;
+ font-weight: bold;
+ text-align: center;
+ margin-top: 28px;
+ }
+
+ /*
+ Set up each row to have a different animation duration
+ and alternating y-axis rotation directions.
+ */
+ #ring-1 {
+ -webkit-animation-name: y-spin;
+ -webkit-animation-duration: 5s;
+ }
+
+ #ring-2 {
+ -webkit-animation-name: back-y-spin;
+ -webkit-animation-duration: 4s;
+ }
+
+ #ring-3 {
+ -webkit-animation-name: y-spin;
+ -webkit-animation-duration: 3s;
+ }
+
+ /*
+
+ Here we define each of the three individual animations that
+ we will be using to have our 3D rotation effect. The first
+ animation will perform a full rotation on the x-axis, we'll
+ use that on the whole set of objects. The second and third
+ animations will perform a full rotation on the y-axis in
+ opposite directions, alternating directions between rows.
+
+ Note that you currently have to specify an intermediate step
+ for rotations even when you are using individual transformation
+ constructs.
+
+ */
+ @-webkit-keyframes x-spin {
+ 0% { -webkit-transform: rotateX(0deg); }
+ 50% { -webkit-transform: rotateX(180deg); }
+ 100% { -webkit-transform: rotateX(360deg); }
+ }
+
+ @-webkit-keyframes y-spin {
+ 0% { -webkit-transform: rotateY(0deg); }
+ 50% { -webkit-transform: rotateY(180deg); }
+ 100% { -webkit-transform: rotateY(360deg); }
+ }
+
+ @-webkit-keyframes back-y-spin {
+ 0% { -webkit-transform: rotateY(360deg); }
+ 50% { -webkit-transform: rotateY(180deg); }
+ 100% { -webkit-transform: rotateY(0deg); }
+ }
+ </style>
+
+ <script type="text/javascript">
+
+ const POSTERS_PER_ROW = 12;
+ const RING_RADIUS = 200;
+
+ function setup_posters (row)
+ {
+ var posterAngle = 360 / POSTERS_PER_ROW;
+ for (var i = 0; i < POSTERS_PER_ROW; i ++) {
+ var poster = document.createElement('div');
+ poster.className = 'poster';
+ // compute and assign the transform for this poster
+ var transform = 'rotateY(' + (posterAngle * i) + 'deg) translateZ(' + RING_RADIUS + 'px)';
+ poster.style.webkitTransform = transform;
+ // setup the number to show inside the poster
+ var content = poster.appendChild(document.createElement('p'));
+ content.textContent = i;
+ // add the poster to the row
+ row.appendChild(poster);
+ }
+
+ }
+
+ function init ()
+ {
+ setup_posters(document.getElementById('ring-1'));
+ setup_posters(document.getElementById('ring-2'));
+ setup_posters(document.getElementById('ring-3'));
+ }
+
+ // call init once the document is fully loaded
+ window.addEventListener('load', init, false);
+
+ </script>
+ </head>
+
+ <body>
+
+ <p>This is a combined test for <a href="https://bugs.webkit.org/show_bug.cgi?id=39295">Bug 39295: Crash (preceded by
+ assertion) in WKCACFLayerRenderer::setNeedsDisplay when computer wakes from sleep on particular page</a> and <a
+ href="https://bugs.webkit.org/show_bug.cgi?id=39297">Bug 39297: WebView doesn't repaint until page reloads when page
+ using hardware acceleration loads just after waking from sleep</a>. To test, put your computer to sleep (or
+ "Standby", as Windows calls it). When you wake your computer up, the browser should not crash and the animation
+ below should still be running without any periods of non-painting of the WebView.</p>
+ <div id="stage">
+ <div id="rotate">
+ <div id="ring-1" class="ring"></div>
+ <div id="ring-2" class="ring"></div>
+ <div id="ring-3" class="ring"></div>
+ </div>
+ </div>
+
+ </body>
+
+</html>
diff --git a/WebCore/manual-tests/crash-on-find-with-no-selection.html b/WebCore/manual-tests/crash-on-find-with-no-selection.html
new file mode 100644
index 0000000..9dd108c
--- /dev/null
+++ b/WebCore/manual-tests/crash-on-find-with-no-selection.html
@@ -0,0 +1,12 @@
+<html>
+<head>
+</head>
+<body>
+<p>This test can be used to verify that we do not crash when searching for text on a page when nothing on the page is currently selected.</p>
+<ol>
+ <li>Ensure that you have not clicked anywhere on this page and that nothing on this page is currently selected.</li>
+ <li>Search for the word &quot;crash&quot; in this page (In Safari for Mac, select Edit->Find->Find or press Cmd-F on your keyboard to open the Find banner to search for a word in the page).
+ <li>This test PASSED if we do not crash and the word &quot;crash&quot; is highlighted in at least the first sentence on this page.</li>
+</ol>
+</body>
+</html>
diff --git a/WebCore/manual-tests/cur-hotspot.html b/WebCore/manual-tests/cur-hotspot.html
new file mode 100644
index 0000000..f1cfb54
--- /dev/null
+++ b/WebCore/manual-tests/cur-hotspot.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body>
+ <p>Test for .cur cursor intrinsic hot spot behavior. See <a href="https://bugs.webkit.org/show_bug.cgi?id=15779">bug 15779</a>.</p>
+ <div style="background:turquoise;cursor:url(resources/cur-hotspot.cur), auto; width:200px; height:200px; position:absolute; top:100px; left: 50px;">Mouse cursor should be upside down inside this box.</div>
+
+ <div style="background:turquoise;cursor:url(resources/cur-hotspot.cur) 200 200, auto; width:200px; height:200px; position:absolute; top:100px; left: 300px;">Mouse cursor should be upside down inside this box.</div>
+
+ <div style="background:turquoise;cursor:url(resources/cur-hotspot.cur) 0 0, auto; width:200px; height:200px; position:absolute; top:350px; left: 50px;">Mouse cursor should flip erratically, due to incorrect hot spot forced in CSS.</div>
+
+</body>
+</html>
diff --git a/WebCore/manual-tests/divx-plugin-fails-to-draw.html b/WebCore/manual-tests/divx-plugin-fails-to-draw.html
new file mode 100644
index 0000000..57244b7
--- /dev/null
+++ b/WebCore/manual-tests/divx-plugin-fails-to-draw.html
@@ -0,0 +1,12 @@
+<html>
+<body>
+This is a manual test for
+<a href="https://bugs.webkit.org/show_bug.cgi?id=39457">Bug #39457</a>. It
+requires that you have the DivX plug-in installed.<br><br>
+
+The plug-in below should not appear as a white box but as a video player with
+controls.<br><br>
+
+<embed type="video/divx" width=320 height=240>
+</body>
+</html>
diff --git a/WebCore/manual-tests/dom/document-write-synchronous-after-page-load.html b/WebCore/manual-tests/dom/document-write-synchronous-after-page-load.html
new file mode 100644
index 0000000..f62fd68
--- /dev/null
+++ b/WebCore/manual-tests/dom/document-write-synchronous-after-page-load.html
@@ -0,0 +1,23 @@
+<p>This test ensures that document.write after page load is synchronous.</p>
+<p>You will get a PASS or FAIL alert message after a few seconds.</p>
+<script>
+window.onload = function() {
+
+ // Build a very long string to write.
+ var LIMIT = 17;
+ var str = '<p style="display:none">x</p>';
+ for (var i=0; i<LIMIT; ++i)
+ str += str;
+
+ // Write the string and check the DOM immediately and after a small delay.
+ var doc = document.implementation.createHTMLDocument();
+ doc.write(str);
+ var immediateElementCount = doc.getElementsByTagName('*').length;
+ setTimeout(function() {
+ var delayedElementCount = doc.getElementsByTagName('*').length;
+ var passOrFail = (immediateElementCount === delayedElementCount ? "PASS" : "FAIL");
+ alert(passOrFail);
+ }, 100);
+
+}
+</script>
diff --git a/WebCore/manual-tests/dom/form-control-for-label.html b/WebCore/manual-tests/dom/form-control-for-label.html
new file mode 100644
index 0000000..aeb8338
--- /dev/null
+++ b/WebCore/manual-tests/dom/form-control-for-label.html
@@ -0,0 +1,12 @@
+<html>
+<style>
+progress {border: 3px solid blue;}
+progress:hover {border: 3px solid red;}
+</style>
+<body>
+<h3>Test hover</h3>
+<label>The border color of the progress bar should change from blue to red when you hover on this label text <progress></progress></label><br>
+<label>The border of this progress bar would change color when it is inside fieldset and legend elements <fieldset><legend><progress></progress></legend></fieldset></label><br>
+</body>
+</html>
+
diff --git a/WebCore/manual-tests/dom/progressbar.html b/WebCore/manual-tests/dom/progressbar.html
new file mode 100644
index 0000000..95e64f2
--- /dev/null
+++ b/WebCore/manual-tests/dom/progressbar.html
@@ -0,0 +1,8 @@
+<html><body>
+<h1>Indeterminate progress bar</h1>
+This is an example of <progress value=7 max=10></progress> a determinate progress bar.<br>
+This is an example of <progress></progress> an indeterminate progress bar.<br>
+This is an example of <progress dir=rtl value=7 max=10></progress> a right-to-left determinate progress bar.<br>
+This is an example of <progress dir=rtl></progress> a right-to-left indeterminate progress bar.<br>
+
+</body></html>
diff --git a/WebCore/manual-tests/focus-change-between-key-events.html b/WebCore/manual-tests/focus-change-between-key-events.html
new file mode 100644
index 0000000..8ceb575
--- /dev/null
+++ b/WebCore/manual-tests/focus-change-between-key-events.html
@@ -0,0 +1,24 @@
+<body onload="document.getElementById('dummy').focus();">
+<iframe src="data:text/html,<body onload='document.getElementsByTagName(&quot;input&quot;)[0].focus()'><input></body>" id=victim name=victim>
+</iframe>
+<script>
+
+var cur_pos = 0;
+
+function maybe_redirect(e) {
+ var evt = window.event ? event : e;
+ var cc = evt.charCode ? evt.charCode : evt.keyCode;
+
+ document.getElementById('victim').focus();
+ frames['victim'].focus();
+
+ document.getElementById('dummy').value += String.fromCharCode(cc).toLowerCase();
+
+ setTimeout('focus();document.getElementById("dummy").focus()',1);
+}
+
+
+</script>
+<p>Type some text. It should only appear in the below input field.</p>
+<input type=text onkeydown="maybe_redirect(event)" id=dummy>
+</body>
diff --git a/WebCore/manual-tests/image-prefetch-stress.html b/WebCore/manual-tests/image-prefetch-stress.html
new file mode 100644
index 0000000..b9203b7
--- /dev/null
+++ b/WebCore/manual-tests/image-prefetch-stress.html
@@ -0,0 +1,20 @@
+<html>
+<script type="text/javascript">
+(function(){
+ var i = 0;
+setInterval(function(){
+ var x = new Image();
+ x.src = "http://upload.wikimedia.org/wikipedia/commons/e/e9/Sombrero_Galaxy_in_infrared_light_%28Hubble_Space_Telescope_and_Spitzer_Space_Telescope%29.jpg?" + i;
+ i++;
+ }, 500);
+})()
+</script>
+<body>
+When an image is preloaded in javascript, the size of the image is never
+reported to the javascript garbage collector. If a large image is repeatedly
+preloaded but never used, it will not free any of the images until the
+garbage collector has run out of space to allocate any new free javascript
+variables. This test passes if after a certain point, the number of allocated
+images as reported by the caches window stops growing.
+</body>
+</html>
diff --git a/WebCore/manual-tests/ime-keydown-preventdefault.html b/WebCore/manual-tests/ime-keydown-preventdefault.html
new file mode 100644
index 0000000..aa474e9
--- /dev/null
+++ b/WebCore/manual-tests/ime-keydown-preventdefault.html
@@ -0,0 +1,27 @@
+<html>
+<body>
+<p>Typing in the input fields below should not generate text, even with an IME enabled.</p>
+
+Type into the input:
+<input type=text id='input'></input><br>
+<div id='out' style="float: right"></div>
+Or the text area:
+<textarea id='area'></textarea><br>
+Or the contentEditable area:
+<div contentEditable id='ce' style="border:1px solid red; height:300px; width:300px;"></div>
+<script>
+var input = document.getElementById('input');
+var area = document.getElementById('area');
+var ce = document.getElementById('ce');
+
+var handleKeyDown = function(e) {
+ document.getElementById('out').innerHTML += "<br>Got a key event -- cancelling";
+ e.preventDefault();
+}
+
+input.addEventListener('keydown', handleKeyDown, false);
+area.addEventListener('keydown', handleKeyDown, false);
+ce.addEventListener('keydown', handleKeyDown, false);
+</script>
+</body>
+</html>
diff --git a/WebCore/manual-tests/layoutroot_detach.xml b/WebCore/manual-tests/layoutroot_detach.xml
new file mode 100644
index 0000000..3a64c01
--- /dev/null
+++ b/WebCore/manual-tests/layoutroot_detach.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body onload="addImg()">
+<style>
+.killme { display:none }
+</style>
+<div style="overflow:hidden; position:absolute; width:150px; height:150px; top:50px; left:0px">
+ <div id='parent' style="overflow:hidden; position:absolute; width:150px; height:150px; top:50px; left:0px">
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
+ <g>
+ <rect id='rrr' x='0' y='0' width='10' height='10'/>
+ </g>
+ </svg>
+ </div>
+</div>
+<script>
+function boomie() {
+ document.body.offsetTop;
+ document.getElementById('rrr').setAttribute('x', '20');
+ document.getElementById('parent').className='killme';
+}
+function addImg() {
+ window.setTimeout(function() {
+ var i = new Image();
+ i.src = 'http://www.webkit.org/nosuchfile.png';
+ document.body.appendChild(i);
+ i.onerror = boomie;
+ }, 15);
+}
+</script>
+</body>
+</html>
+
diff --git a/WebCore/manual-tests/localstorage-empty-database.html b/WebCore/manual-tests/localstorage-empty-database.html
new file mode 100644
index 0000000..a164127
--- /dev/null
+++ b/WebCore/manual-tests/localstorage-empty-database.html
@@ -0,0 +1,13 @@
+<html>
+<body>
+<script type="text/javascript">
+ var x = localStorage.getItem('foo');
+</script>
+<p>This page has called <code>localStorage.getItem('foo')</code>.
+Since no data has been stored, no database file should have been created.</p>
+
+<p>If you click <a href="javascript:localStorage.setItem('bar', 'baz');">here</a>, data will be stored, and a database file should be created.</p>
+
+<p>(This is for <a href="https://bugs.webkit.org/show_bug.cgi?id=40301">https://bugs.webkit.org/show_bug.cgi?id=40301</a>.)</p>
+</body>
+</html>
diff --git a/WebCore/manual-tests/match-marker-rects.html b/WebCore/manual-tests/match-marker-rects.html
new file mode 100644
index 0000000..d650965
--- /dev/null
+++ b/WebCore/manual-tests/match-marker-rects.html
@@ -0,0 +1,33 @@
+<style>
+ div {
+ height: 50px;
+ width: 110px;
+ margin: 10px 0;
+ padding: 10px;
+ border: solid black;
+ font-size: 25px;
+ }
+
+ div.columns {
+ -webkit-columns: 2;
+ -webkit-column-gap: 10px;
+ }
+
+ div.scroll {
+ overflow-y: scroll;
+ }
+</style>
+<p>
+ In Safari, choose Edit > Find > Find, and type the strings &ldquo;xyz&rdquo;
+ and &ldquo;123&rdquo;. The white &ldquo;holes&rdquo; in the Find overlay
+ should line up with the matching text below.
+</p>
+<div class="columns">
+ <br>xyz
+</div>
+<div class="scroll" id="scroll">
+ <br><br>123<br><br>
+</div>
+<script>
+ document.getElementById("scroll").scrollTop = 100;
+</script>
diff --git a/WebCore/manual-tests/media-elements/video-replaces-poster.html b/WebCore/manual-tests/media-elements/video-replaces-poster.html
new file mode 100644
index 0000000..8d852aa
--- /dev/null
+++ b/WebCore/manual-tests/media-elements/video-replaces-poster.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ </head>
+ <body>
+ <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34965">https://bugs.webkit.org/show_bug.cgi?id=34965</a><br>
+ Disable accelerated compositing and reload this test. You should see the test video
+ start playing.</p>
+
+ <video width="480" height="270" type="video/mp4"
+ src="../../../LayoutTests/media/content/test.mp4"
+ poster="../../../LayoutTests/media/content/abe.png" autoplay>
+ </video>
+ </body>
+</html>
diff --git a/WebCore/manual-tests/modal-dialog-blur-selfclose.html b/WebCore/manual-tests/modal-dialog-blur-selfclose.html
new file mode 100644
index 0000000..c6b2da8
--- /dev/null
+++ b/WebCore/manual-tests/modal-dialog-blur-selfclose.html
@@ -0,0 +1,3 @@
+<script>
+window.close()
+</script>
diff --git a/WebCore/manual-tests/modal-dialog-blur.html b/WebCore/manual-tests/modal-dialog-blur.html
new file mode 100644
index 0000000..bd72aa5
--- /dev/null
+++ b/WebCore/manual-tests/modal-dialog-blur.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head><title>
+Tests blur/focus events with modal dialogs
+</title></head>
+<script>
+var failed = "";
+function failBlur() {
+ failed = "blur";
+}
+function failFocus() {
+ failed = "focus";
+}
+
+var inputElement;
+
+function test() {
+ inputElement = document.getElementById("i")
+ inputElement.focus();
+ inputElement.addEventListener("blur", failBlur, false);
+ inputElement.addEventListener("focus", failFocus, false);
+ window.showModalDialog("modal-dialog-blur-selfclose.html");
+ if (failed) {
+ document.getElementById("status").innerHTML = "FAIL, " + failed;
+ } else {
+ document.getElementById("status").innerHTML = "SUCCESS";
+ }
+}
+</script>
+<body onload="test()">
+<input id="i"></input>
+<div id="status">RUNNING...</div>
+</body>
+</html>
diff --git a/WebCore/manual-tests/no-listbox-rendering.html b/WebCore/manual-tests/no-listbox-rendering.html
new file mode 100644
index 0000000..f4467a6
--- /dev/null
+++ b/WebCore/manual-tests/no-listbox-rendering.html
@@ -0,0 +1,32 @@
+<html>
+<body>
+<style>
+td {padding: 20px}
+</style>
+<br><br>
+This test just makes sense if webkit was build with NO_LISTBOX_RENDERING enabled.<br><br>
+You should see in the following table three comboboxes and no listboxes.<br><br>
+At the right cell you see a description of what should be the state of the elements just after loading this page.<br><br>
+<form>
+<table border="1">
+ <tr>
+ <td><select><option>1</option><option>2</option></select></td>
+ <td>combobox in previos cell should have option '1' selected.</td>
+ </tr>
+ <tr>
+ <td><select multiple><option>1</option><option>2</option></select></td>
+ <td>combobox in previos cell should have no selected option.</td>
+ </tr>
+ <tr>
+ <td><select size="5"><option>1</option><option>2</option>s</select></td>
+ <td>combobox in previos cell should have no selected option.</td>
+ </tr>
+ <tr>
+ <td><input type="reset"</td>
+ <td>after pressing this button all the combo boxes should go back to the state discribed above.</td>
+ </tr>
+</table>
+</form>
+</body>
+</html>
+
diff --git a/WebCore/manual-tests/no-repaint-after-wake-from-sleep.html b/WebCore/manual-tests/no-repaint-after-wake-from-sleep.html
new file mode 100644
index 0000000..0c0f161
--- /dev/null
+++ b/WebCore/manual-tests/no-repaint-after-wake-from-sleep.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>Test for Bug 39139</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="viewport" content="initial-scale=0.60, minimum-scale=0.60, maximum-scale=0.60">
+ <style type="text/css">
+
+ body {
+ font-family: 'Lucida Grande', Verdana, Arial;
+ font-size: 12px;
+ }
+
+ #stage {
+ margin: 150px auto;
+ width: 600px;
+ height: 400px;
+ /*
+
+ Setting the perspective of the contents of the stage
+ but not the stage itself
+
+ */
+ -webkit-perspective: 800;
+ }
+
+ #rotate {
+ margin: 0 auto;
+ width: 600px;
+ height: 400px;
+ /* Ensure that we're in 3D space */
+ -webkit-transform-style: preserve-3d;
+ /*
+ Make the whole set of rows use the x-axis spin animation
+ for a duration of 7 seconds, running infinitely and linearly
+ */
+ -webkit-animation-name: x-spin;
+ -webkit-animation-duration: 7s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ }
+
+ .ring {
+ margin: 0 auto;
+ height: 110px;
+ width: 600px;
+ -webkit-transform-style: preserve-3d;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ }
+
+ .ring > :nth-child(odd) {
+ background-color: #995C7F;
+ }
+
+ .ring > :nth-child(even) {
+ background-color: #835A99;
+ }
+
+ .poster {
+ position: absolute;
+ left: 250px;
+ width: 100px;
+ height: 100px;
+ opacity: 0.7;
+ color: rgba(0,0,0,0.9);
+ -webkit-border-radius: 10px;
+ }
+
+ .poster > p {
+ font-family: 'Georgia', serif;
+ font-size: 36px;
+ font-weight: bold;
+ text-align: center;
+ margin-top: 28px;
+ }
+
+ /*
+ Set up each row to have a different animation duration
+ and alternating y-axis rotation directions.
+ */
+ #ring-1 {
+ -webkit-animation-name: y-spin;
+ -webkit-animation-duration: 5s;
+ }
+
+ #ring-2 {
+ -webkit-animation-name: back-y-spin;
+ -webkit-animation-duration: 4s;
+ }
+
+ #ring-3 {
+ -webkit-animation-name: y-spin;
+ -webkit-animation-duration: 3s;
+ }
+
+ /*
+
+ Here we define each of the three individual animations that
+ we will be using to have our 3D rotation effect. The first
+ animation will perform a full rotation on the x-axis, we'll
+ use that on the whole set of objects. The second and third
+ animations will perform a full rotation on the y-axis in
+ opposite directions, alternating directions between rows.
+
+ Note that you currently have to specify an intermediate step
+ for rotations even when you are using individual transformation
+ constructs.
+
+ */
+ @-webkit-keyframes x-spin {
+ 0% { -webkit-transform: rotateX(0deg); }
+ 50% { -webkit-transform: rotateX(180deg); }
+ 100% { -webkit-transform: rotateX(360deg); }
+ }
+
+ @-webkit-keyframes y-spin {
+ 0% { -webkit-transform: rotateY(0deg); }
+ 50% { -webkit-transform: rotateY(180deg); }
+ 100% { -webkit-transform: rotateY(360deg); }
+ }
+
+ @-webkit-keyframes back-y-spin {
+ 0% { -webkit-transform: rotateY(360deg); }
+ 50% { -webkit-transform: rotateY(180deg); }
+ 100% { -webkit-transform: rotateY(0deg); }
+ }
+ </style>
+
+ <script type="text/javascript">
+
+ const POSTERS_PER_ROW = 12;
+ const RING_RADIUS = 200;
+
+ function setup_posters (row)
+ {
+ var posterAngle = 360 / POSTERS_PER_ROW;
+ for (var i = 0; i < POSTERS_PER_ROW; i ++) {
+ var poster = document.createElement('div');
+ poster.className = 'poster';
+ // compute and assign the transform for this poster
+ var transform = 'rotateY(' + (posterAngle * i) + 'deg) translateZ(' + RING_RADIUS + 'px)';
+ poster.style.webkitTransform = transform;
+ // setup the number to show inside the poster
+ var content = poster.appendChild(document.createElement('p'));
+ content.textContent = i;
+ // add the poster to the row
+ row.appendChild(poster);
+ }
+
+ }
+
+ function init ()
+ {
+ setup_posters(document.getElementById('ring-1'));
+ setup_posters(document.getElementById('ring-2'));
+ setup_posters(document.getElementById('ring-3'));
+ }
+
+ // call init once the document is fully loaded
+ window.addEventListener('load', init, false);
+
+ </script>
+ </head>
+
+ <body>
+
+ <p>This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=39139">Bug 39139: Pages
+ that use hardware acceleration don't repaint after waking computer from sleep</a>. To test, put
+ your computer to sleep (or "Standby", as Windows calls it). When you wake your computer up, the
+ animation below should still be running.</p>
+ <div id="stage">
+ <div id="rotate">
+ <div id="ring-1" class="ring"></div>
+ <div id="ring-2" class="ring"></div>
+ <div id="ring-3" class="ring"></div>
+ </div>
+ </div>
+
+ </body>
+
+</html>
diff --git a/WebCore/manual-tests/onbeforeunload-focused-iframe.html b/WebCore/manual-tests/onbeforeunload-focused-iframe.html
deleted file mode 100644
index 9ef0dfa..0000000
--- a/WebCore/manual-tests/onbeforeunload-focused-iframe.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
-<head>
-</head>
-<BODY onbeforeunload="return 'onBeforeUnloadHandler return string is displayed here.';">
-<p><b>BUG ID:</b> <a href="https://bugs.webkit.org/show_bug.cgi?id=27481">27481</a> onbeforeunload not called at window close + frame or iframe focused</p>
-
-<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
-<ol>
- <li>Close this browser window while the inner frame has focus.
-</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="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
-No dialog (as described above) when closing the browser window.
-</p>
-
-<BODY onbeforeunload="return 'onBeforeUnloadHandler return string is displayed here.';">
-<iframe src="resources/focused-iframe.html"></iframe>
-<p>Close this browser window.</p>
-</body>
-</html>
diff --git a/WebCore/manual-tests/onfocus-alert-blinking-caret.html b/WebCore/manual-tests/onfocus-alert-blinking-caret.html
new file mode 100644
index 0000000..26b9812
--- /dev/null
+++ b/WebCore/manual-tests/onfocus-alert-blinking-caret.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+
+<body>
+Focus the field below, then dismiss the alert. The field should retain the focus,
+and the caret in the field should blink.
+<br>
+<input onfocus="alert('Test');">
+</body>
diff --git a/WebCore/manual-tests/plugin-in-iframe-scroll.html b/WebCore/manual-tests/plugin-in-iframe-scroll.html
new file mode 100644
index 0000000..182c43c
--- /dev/null
+++ b/WebCore/manual-tests/plugin-in-iframe-scroll.html
@@ -0,0 +1,7 @@
+<p>This test requires that accelerated compositing be disabled. Please scroll down to the bottom.</p>
+<p>Both squares should be orange, with no red visible at any time.</p>
+<iframe src="resources/plugin-in-iframe-scroll-iframe.html" width="300" height="300" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" style="border:1px"></iframe>
+
+<div style="height:1000px">&nbsp;</div>
+<iframe src="resources/plugin-in-iframe-scroll-iframe.html" width="300" height="300" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" style="border:1px"></iframe>
+<div style="height:1000px">&nbsp;</div>
diff --git a/WebCore/manual-tests/plugin-visible-rect-change.html b/WebCore/manual-tests/plugin-visible-rect-change.html
new file mode 100644
index 0000000..3fe12e9
--- /dev/null
+++ b/WebCore/manual-tests/plugin-visible-rect-change.html
@@ -0,0 +1,25 @@
+<p>
+ This test requires that accelerated compositing be disabled. Clicking the Test button should completely reveal the black-bordered box.
+ The orange video should completely fill the box, with the controller visible and touching the bottom of the box. There should be
+ not be any red visible.
+</p>
+<p>
+ <button onclick="test()">Test</button>
+</p>
+<div style="overflow: hidden; border: solid blue; position: relative;">
+ <div style="height: 100px; padding: 0 8px;">
+ </div>
+ <object type="video/quicktime" style="background-color: red; width: 300px; height: 241px; position: absolute; top: 50px; left: 40px; border: solid black;">
+ <param name="src" value="resources/orange.mov">
+ <param name="controller" value="true">
+ <param name="autoplay" value="false">
+ <param name="scale" value="tofit">
+ </object>
+ <div id="target"></div>
+ <script>
+ function test()
+ {
+ document.getElementById("target").style.height = "500px";
+ }
+ </script>
+</div>
diff --git a/WebCore/manual-tests/plugins/flip4mac-update-alert-over-navigation.html b/WebCore/manual-tests/plugins/flip4mac-update-alert-over-navigation.html
new file mode 100644
index 0000000..2391717
--- /dev/null
+++ b/WebCore/manual-tests/plugins/flip4mac-update-alert-over-navigation.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+ <title>Test case for &lt;rdar://problem/7313430&gt; Many crashes in Safari inside Flip4Mac below -[NSAlert didEndAlert:returnCode:contextInfo:]</title>
+</head>
+<body>
+ <h1>Test case for &lt;<a href='rdar://problem/7313430'>rdar://problem/7313430</a>&gt; Many crashes in Safari inside Flip4Mac below -[NSAlert didEndAlert:returnCode:contextInfo:]</h1>
+
+ <p>This test requires Flip4Mac to be installed and an update to be available for the version that is installed. Previous versions
+ of Flip4Mac can be downloaded from <a href='http://dynamic.telestream.net/downloads/download-flip4macwmv.htm'>Telestream's website</a>.
+ As of the writing of this test on 2010-04-21 the latest available version of Flip4Mac is 2.3.2.6. The prior version to that,
+ version 2.3.1.2, is therefore currently the most recent version that will reproduce this bug due to it being the most recent version
+ with an update available.
+ </p>
+
+ <p>Once Flip4Mac is installed, you can test the bug by doing the following.</p>
+ <ol>
+ <li>Launch the browser with <code>NSZombieEnabled=YES</code> and <code>NSDeallocateZombies=NO</code> set in the enrivonment.</li>
+ <li>Load this page. A Flip4Mac update alert will be displayed, and soon after the page will navigate.</li>
+ <li>After the new page has loaded click the "Cancel" button on the update alert.The browser should not crash.</li>
+ </ol>
+
+ <p>If you have the correct version of Flip4Mac installed but do not see the update alert displayed when loading this page then you may need to delete
+ the Flip4Mac preferences to force it to check for updates. You can do this by removing <code>~/Library/Preferences/net.telestream.wmv.*</code>
+ and then relaunching the browser.</p>
+
+ <object type="application/asx"></object>
+
+ <script>window.setTimeout(function() { window.location = "data:text/html,If the browser does not crash when you click 'Cancel' in the Flip4Mac update alert sheet then the bug is not present."; }, 10000)</script>
+</body>
+</html>
diff --git a/WebCore/manual-tests/plugins/object-clipping.html b/WebCore/manual-tests/plugins/object-clipping.html
new file mode 100644
index 0000000..23fd630
--- /dev/null
+++ b/WebCore/manual-tests/plugins/object-clipping.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <title>clipping objects</title>
+ <style type="text/css" media="screen">
+ object {
+ margin: 30px;
+ border: 20px solid green;
+ }
+ </style>
+</head>
+<body>
+ <p>You should see a clipped video surrounded by a thick green border.</p>
+ <p><a href="https://bugs.webkit.org/show_bug.cgi?id=35555">https://bugs.webkit.org/show_bug.cgi?id=35555</a></p>
+ <object type="video/quicktime" data="../../../LayoutTests/media/content/test.mp4" width="200" height="150">
+ <param value="false" name="autoplay">
+ <param value="false" name="controller">
+ </object>
+
+</body>
+</html>
diff --git a/WebCore/manual-tests/plugins/timeout-dialog-displayed-over-navigation.html b/WebCore/manual-tests/plugins/timeout-dialog-displayed-over-navigation.html
new file mode 100644
index 0000000..53fc1b7
--- /dev/null
+++ b/WebCore/manual-tests/plugins/timeout-dialog-displayed-over-navigation.html
@@ -0,0 +1,25 @@
+<html>
+<head>
+ <title>Test case for &lt;rdar://problem/7856151&gt; REGRESSION: NPP_Destroy is not called when page navigates when plug-in is displaying modal dialog</title>
+
+ <meta http-equiv="refresh" content="3; data:text/html,If we did not crash or hang and there is no Adobe Flash dialog on screen then this test was a success.<p><a href='javascript:history.back();'>Run again</a>.</p><p><a href='rdar://problem/7856151'>&amp;lt;rdar://problem/7856151&amp;gt;</a>.</p>">
+</head>
+<body>
+ <h1>Test case for &lt;<a href='rdar://problem/7856151'>rdar://problem/7856151</a>&gt; REGRESSION: NPP_Destroy is not called when page navigates when plug-in is displaying modal dialog</h1>
+
+ <p>This page loads some Adobe Flash content that results in the Flash Player plug-in displaying a modal alert window. The page then triggers
+ a navigation while this alert is on-screen. After the navigation completes the Flash Player plug-in's modal alert should no longer be
+ visible on-screen and the plug-in host and browser application should not crash.
+ </p>
+
+ <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="550" height="400" align="middle">
+ <param name="allowScriptAccess" value="sameDomain">
+ <param name="allowFullScreen" value="false">
+ <param name="movie" value="timeout-dialog-displayed-over-navigation.swf">
+ <param name="quality" value="high">
+ <param name="bgcolor" value="#ffffff">
+ <embed src="timeout-dialog-displayed-over-navigation.swf" quality="high" bgcolor="#ffffff" width="550" height="400" align="middle"
+ allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer">
+ </object>
+</body>
+</html>
diff --git a/WebCore/manual-tests/plugins/timeout-dialog-displayed-over-navigation.swf b/WebCore/manual-tests/plugins/timeout-dialog-displayed-over-navigation.swf
new file mode 100644
index 0000000..7e7c3d9
--- /dev/null
+++ b/WebCore/manual-tests/plugins/timeout-dialog-displayed-over-navigation.swf
Binary files differ
diff --git a/WebCore/manual-tests/quit-inside-unload.html b/WebCore/manual-tests/quit-inside-unload.html
new file mode 100644
index 0000000..23ae71d
--- /dev/null
+++ b/WebCore/manual-tests/quit-inside-unload.html
@@ -0,0 +1,14 @@
+<script>
+ var showedAlert = false;
+ function handleUnload()
+ {
+ if (showedAlert)
+ return;
+
+ showedAlert = true;
+ alert("Now Quit Safari. Do not dismiss this alert first.");
+ }
+</script>
+<body onunload="handleUnload()">
+ Close this window
+</body>
diff --git a/WebCore/manual-tests/resources/animated-10x.gif b/WebCore/manual-tests/resources/animated-10x.gif
new file mode 100644
index 0000000..56bdb0e
--- /dev/null
+++ b/WebCore/manual-tests/resources/animated-10x.gif
Binary files differ
diff --git a/WebCore/manual-tests/resources/animated-infinite.gif b/WebCore/manual-tests/resources/animated-infinite.gif
new file mode 100644
index 0000000..8bca4a8
--- /dev/null
+++ b/WebCore/manual-tests/resources/animated-infinite.gif
Binary files differ
diff --git a/WebCore/manual-tests/resources/cur-hotspot.cur b/WebCore/manual-tests/resources/cur-hotspot.cur
new file mode 100644
index 0000000..8107e47
--- /dev/null
+++ b/WebCore/manual-tests/resources/cur-hotspot.cur
Binary files differ
diff --git a/WebCore/manual-tests/resources/focused-iframe.html b/WebCore/manual-tests/resources/focused-iframe.html
deleted file mode 100644
index 50b49a5..0000000
--- a/WebCore/manual-tests/resources/focused-iframe.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<body onload="load()">
- This frame should get the focus.
- <input id="box"></input>
- <script>
- function load()
- {
- document.getElementById("box").focus();
- }
- </script>
-</body>
-</html>
diff --git a/WebCore/manual-tests/resources/non-animated.gif b/WebCore/manual-tests/resources/non-animated.gif
new file mode 100644
index 0000000..b6a8540
--- /dev/null
+++ b/WebCore/manual-tests/resources/non-animated.gif
Binary files differ
diff --git a/WebCore/manual-tests/resources/plugin-in-iframe-scroll-iframe.html b/WebCore/manual-tests/resources/plugin-in-iframe-scroll-iframe.html
new file mode 100644
index 0000000..b2593b0
--- /dev/null
+++ b/WebCore/manual-tests/resources/plugin-in-iframe-scroll-iframe.html
@@ -0,0 +1,6 @@
+<object type="video/quicktime" style="background-color: red; width: 298px; height: 298px; border:solid 1px">
+ <param name="src" value="orange.mov">
+ <param name="controller" value="false">
+ <param name="autoplay" value="false">
+ <param name="scale" value="tofit">
+</object>
diff --git a/WebCore/manual-tests/resources/video-tab.html b/WebCore/manual-tests/resources/video-tab.html
new file mode 100644
index 0000000..fec915f
--- /dev/null
+++ b/WebCore/manual-tests/resources/video-tab.html
@@ -0,0 +1 @@
+<video src="http://movies.apple.com/movies/us/apple/ipoditunes/2007/touch/ads/apple_ipodtouch_touch_r640-9cie.mov" controls autoplay>
diff --git a/WebCore/manual-tests/select_dropdown_box_alignment.html b/WebCore/manual-tests/select_dropdown_box_alignment.html
new file mode 100644
index 0000000..07035b7
--- /dev/null
+++ b/WebCore/manual-tests/select_dropdown_box_alignment.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head>
+<title>Test <select> drop-down box's alignment</title>
+<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+</head>
+<body>
+<p>
+For RTL, select drop-down box's should be right aligned with the &lt;select&gt;
+element and expands to left instead of right.
+<p>
+The drop-down box in the following &lt;select&gt; should be left-aligned and expand to right.
+<br>
+<select style="width:100px">
+<option>Arabic</option>
+<option>Hebrew</option>
+<option>English (United States)</option>
+<option>Chinese (Simplified Chiense)</option>
+</select>
+<br>
+The drop-down box in the second &lt;select&gt; should be right-aligned and expand to left.
+<p>
+<select dir="rtl" style="width:100px">
+<option>Arabic</option>
+<option>Hebrew</option>
+<option>English (United States)</option>
+<option>Chinese (Simplified Chiense)</option>
+</select>
+</body>
+</html>
diff --git a/WebCore/manual-tests/spatial-navigation/frameset.html b/WebCore/manual-tests/spatial-navigation/frameset.html
new file mode 100644
index 0000000..fe82e4a
--- /dev/null
+++ b/WebCore/manual-tests/spatial-navigation/frameset.html
@@ -0,0 +1,7 @@
+<html>
+ <frameset border=1 rows="10%,10%,*">
+ <frame src="links.html"/>
+ <frame src="links.html"/>
+ <frame src="spatial-navigation-test-cases.html"/>
+ </frameset><br><br>
+</html>
diff --git a/WebCore/manual-tests/spatial-navigation/links.html b/WebCore/manual-tests/spatial-navigation/links.html
new file mode 100755
index 0000000..18cfd62
--- /dev/null
+++ b/WebCore/manual-tests/spatial-navigation/links.html
@@ -0,0 +1,8 @@
+<html>
+ <body>
+ <p>
+ <a href="a">x</a>
+ <a href="a">y</a>
+ <a href="a">z</a>
+ </body>
+</html>
diff --git a/WebCore/manual-tests/spatial-navigation/spatial-navigation-test-cases.html b/WebCore/manual-tests/spatial-navigation/spatial-navigation-test-cases.html
new file mode 100755
index 0000000..bf00c23
--- /dev/null
+++ b/WebCore/manual-tests/spatial-navigation/spatial-navigation-test-cases.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <title>Spatial Navigation Test Cases</title>
+ </head>
+ <body>
+
+ <div style="margin-left: 40px; text-align: center;">
+ <h1 style="text-align: left;">Spatial Navigation Fun</h1>
+ <h2 style="text-align: left;">3x3 Centered Table Test</h2>
+ </div>
+
+ <table style="text-align: left; width: 100%; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div style="margin-left: 40px; text-align: left;"><br>
+
+ <div style="text-align: left;">
+ <h2>Vertical Sine Test</h2><br>
+ </div>
+
+ <div style="text-align: left;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 40px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 80px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 40px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <a href="a">test<br></a>
+
+ <div style="margin-left: 40px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 80px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 40px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <a href="a">test<br></a>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="a">test<br></a>
+
+ <h2>Increasing sentence length</h2>
+ <a href="a">H</a><br>
+ <a href="p">Ho<br></a>
+ <a href="p">How<br></a>
+ <a href="p">How <br></a>
+ <a href="p">How N</a><br>
+ <a href="p">How No</a><br>
+ <a href="p">How Now</a><br>
+ <a href="p">How Now </a><br>
+ <a href="p">How Now B</a><br>
+ <a href="p">How Now Br</a><br>
+ <a href="p">How Now Bro</a><br>
+ <a href="p">How Now Brow</a><br>
+ <a href="p">How Now Brown</a><br>
+ <a href="p">How Now Brown </a><br>
+ <a href="p">How Now Brown C</a><br>
+ <a href="p">How Now Brown Co</a><br>
+ <a href="p">How Now Brown Cow</a><br>
+ <br>
+
+ <h2>Split sentence<br></h2><br>
+ <a href="p">H</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<a href="p">ow Now Brown Cow</a><br>
+ <a href="p">Ho</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <a href="p">w Now Brown Cow</a><br>
+ <a href="p">How</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="p">Now Brown Cow</a><br>
+ <a href="p">How N</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; <a href="p">ow Brown Cow</a><br>
+ <a href="p">How No</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">w Brown Cow</a><br>
+ <a href="p">How Now </a>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">Brown Cow</a><br>
+ <a href="p">How Now B</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">rown Cow</a><br>
+ <a href="p">How Now Br</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">own Cow</a><br>
+ <a href="p">How Now Bro</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">wn Cow</a><br>
+ <a href="p">How Now Brow</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="p">n Cow</a><br>
+ <a href="p">How Now Brown</a> &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; <a href="p">Cow</a><br>
+ <a href="p">How Now Brown C</a> &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">ow</a><br>
+ <a href="p">How Now Brown Co</a> &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">w</a><br>
+ <a href="p">How Now Brown Cow</a><br><br>
+
+ <h2>Line Wrap Test</h2><br>
+
+ <table style="text-align: left; width: 393px; height: 72px;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top;">
+ <span class="huge">
+ <a href="a">Which of the following constanst do you like the most, one is g, one is pi, and the other is e. </a><br>
+ </span>
+ </td>
+
+ <td style="vertical-align: top;">
+ <a href="a">3.14</a><br>
+ <a href="a">2.71</a><br>
+ <a href="a">6.67</a><br>
+ </td>
+ </tr>
+ </tbody>
+ </table><br>
+
+ <h2>Javascript Focus/Blur Test</h2>
+ When going to any link from the following link, you should see a dialog.<br><br>
+ <a href="a" onblur='alert("onBlurt")'>Test</a><br><br>
+
+ <h2>IFrames</h2><br>
+ <iframe src="links.html"></iframe><br><br><br>
+
+ <h2>DIVs</h2><br>
+ <div id=v>
+ <a href="a">a</a>
+ <div id="Div1">
+ <a href="a">b</a>
+ </div>
+ <a href="a">c</a>
+ </div><br><br>
+ <a href="last">last</a>
+ </div>
+</body>
+</html>
diff --git a/WebCore/manual-tests/style-keypress-events.html b/WebCore/manual-tests/style-keypress-events.html
new file mode 100644
index 0000000..b0d2770
--- /dev/null
+++ b/WebCore/manual-tests/style-keypress-events.html
@@ -0,0 +1,38 @@
+<body onload="setup()">
+<p>cmd+b and cmd+i should generate a keydown event in contentEditable fields. Also, calling
+preventDefault() in the keydown event should cancel the text styling.</p>
+
+<div contentEditable id="test" style="border: 1px solid; padding: 4px;">
+This is some sample text.<br><br><br><br>
+</div>
+<div>
+<input type="checkbox" id="disable"><label for="disable">preventDefault() in keydown</label>
+</div>
+<div id="log"></div>
+
+<script>
+function setup()
+{
+ var test = document.getElementById("test");
+ test.addEventListener("keydown", keydown, false);
+
+ var selection = window.getSelection();
+ selection.setPosition(test, 0);
+ selection.modify("extend", "forward", "sentence");
+ test.focus();
+}
+
+function log(msg)
+{
+ var log = document.getElementById("log");
+ log.innerHTML += "<br>" + msg;
+}
+
+function keydown(event)
+{
+ log("keydown");
+ if (document.getElementById("disable").checked)
+ event.preventDefault();
+}
+</script>
+</body>
diff --git a/WebCore/manual-tests/svg-tooltip.svg b/WebCore/manual-tests/svg-tooltip.svg
new file mode 100644
index 0000000..84fe1d7
--- /dev/null
+++ b/WebCore/manual-tests/svg-tooltip.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>This string should not show up as a tooltip</title>
+ <desc>
+ This test verifies that tooltips are properly rendered for SVG content in a variety of
+ scenarios. Hovering over every shape should result in a tooltip of "PASS".
+ </desc>
+ <defs>
+ <ellipse id="e1" cx="100" cy="200" rx="50" ry="30" fill="blue">
+ <title>PASS</title>
+ </ellipse>
+ <ellipse id="e2" cx="250" cy="200" rx="50" ry="30" fill="blue">
+ <title>FAIL</title>
+ </ellipse>
+ <symbol id="e3">
+ <ellipse cx="100" cy="300" rx="50" ry="30" fill="blue">
+ <title>PASS</title>
+ </ellipse>
+ </symbol>
+ <symbol id="e4">
+ <title>FAIL</title>
+ <ellipse cx="250" cy="300" rx="50" ry="30" fill="blue">
+ </ellipse>
+ </symbol>
+ </defs>
+
+ <text y="15" x="0">When hovered, all shapes should show a "PASS" tooltip. Anything else is a failure.</text>
+
+ <ellipse cx="100" cy="100" rx="50" ry="30" fill="blue">
+ <title>PASS</title>
+ </ellipse>
+
+ <g>
+ <title>PASS</title>
+ <ellipse cx="250" cy="100" rx="50" ry="30" fill="blue"/>
+ </g>
+
+ <a xlink:title="PASS" xlink:href="#">
+ <title>FAIL</title>
+ <ellipse id="e4" cx="400" cy="100" rx="50" ry="30" fill="blue"/>
+ </a>
+
+ <use xlink:href="#e1"/>
+
+ <use xlink:href="#e2">
+ <title>PASS</title>
+ </use>
+
+ <g>
+ <title>FAIL</title>
+ <ellipse id="e8" cx="400" cy="200" rx="50" ry="30" fill="blue">
+ <title>PASS</title>
+ </ellipse>
+ </g>
+
+ <use xlink:href="#e3"/>
+ <use xlink:href="#e4">
+ <title>PASS</title>
+ </use>
+
+
+</svg>
diff --git a/WebCore/manual-tests/video-in-non-frontmost-tab.html b/WebCore/manual-tests/video-in-non-frontmost-tab.html
new file mode 100644
index 0000000..d1fe4a8
--- /dev/null
+++ b/WebCore/manual-tests/video-in-non-frontmost-tab.html
@@ -0,0 +1,4 @@
+This tests that video does not play if it's not in the frontmost tab.
+Command-Click <a href="resources/video-tab.html">this link</a> to open it in a non-frontmost tab.
+If you hear music before switching tabs, then the test failed.
+If not, click on the tab and the video should then play.
diff --git a/WebCore/manual-tests/video-rtsp.html b/WebCore/manual-tests/video-rtsp.html
new file mode 100644
index 0000000..4fff987
--- /dev/null
+++ b/WebCore/manual-tests/video-rtsp.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<title>RTSP playback test</title>
+</head>
+<body>
+<video with=640 height=352 autoplay controls src="rtsp://a2047.v1411b.c1411.g.vq.akamaistream.net/5/2047/1411/2_h264_650/1a1a1ae454c430950065de4cbb2f94c226950c7ae655b61a48a91475e243acda3dac194879adde0f/wwdc_2006_2_650.mov"></video>
+<p>Test that QuickTime file with RTSP URL loads.<p>
+<script>start()</script>
+<pre id="console"></pre>
+</body>
+</html>
diff --git a/WebCore/manual-tests/visited-link-new-window.html b/WebCore/manual-tests/visited-link-new-window.html
new file mode 100644
index 0000000..5e10a34
--- /dev/null
+++ b/WebCore/manual-tests/visited-link-new-window.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Visited link coloring test</test>
+<style>
+:visited {
+ color: limegreen;
+}
+</style>
+</head>
+<body>
+<h1>Visited link coloring test</h1>
+<p>Make sure the link below is not colored as visited (delete the item
+for visited-link.html from your history and restart if
+necessary). Then cmd-click it. The link should turn lime green.</p>
+<a href="resources/visited-link.html">Am I a visited link?</a>
+</body>
+</html>
diff --git a/WebCore/manual-tests/webarchive-test.html b/WebCore/manual-tests/webarchive-test.html
new file mode 100644
index 0000000..ab64422
--- /dev/null
+++ b/WebCore/manual-tests/webarchive-test.html
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>webarchive test</title>
+</head>
+<body>
+<p>This test verifies that webarchive files larger than 4KB can be loaded. This functionality had previously regressed due to <a href="https://bugs.webkit.org/show_bug.cgi?id=36196">https://bugs.webkit.org/show_bug.cgi?id=36196</a>. If you see a snapshot of <a href="http://webkit.org">webkit.org</a> in the iframe below, the test passed.</p>
+<iframe src="WebKitSite.webarchive" width="800" height="600"></iframe>
+</body>
+</html>
diff --git a/WebCore/manual-tests/win/horizontal-scroll-composited.html b/WebCore/manual-tests/win/horizontal-scroll-composited.html
deleted file mode 100644
index c977300..0000000
--- a/WebCore/manual-tests/win/horizontal-scroll-composited.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<div>
-<b>Scroll test for composited elements on Windows.</b>
-</div>
-<div>Make sure you browser window is smaller than 1000 pixels so that you see an horizontal scroll bar.
-<br />
-Try scolling right and left and verify that the content is displayed correctly.
-</div>
-<div style="-webkit-transform: translatez(0); width: 1000px; height: 800px; border-style: solid; border-color: Red; border-width: 3px; background-image: url(../resources/apple.jpg); background-repeat:repeat"></div>
diff --git a/WebCore/manual-tests/win/milliondollar.html b/WebCore/manual-tests/win/milliondollar.html
new file mode 100644
index 0000000..e1d51ff
--- /dev/null
+++ b/WebCore/manual-tests/win/milliondollar.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Million dollar test</title>
+<style type="text/css" media="screen">
+ body {
+ padding: 0px; margin: 0px; font-size: 12px; font-family:"Lucida Grande", Verdana, Arial, sans-serif;
+ background:#303030;
+ }
+ .ie {text-align: left; width:1000px;position:relative;visibility:hidden;z-index:1;}
+ .grid {height: 1000px; width:1000px; position:relative;z-index:153;xoverflow:hidden;}
+ .row {background:url(100grid_inv.png) #000;height: 100px; text-align: left; position:relative;width:1000px;z-index:10;}
+ #lq {width:1000px;position:relative;z-index:0;text-align:left;}
+ .bz {-webkit-perspective: 1500;-webkit-perspective-origin: 50% 325px;}
+ .fc {-webkit-transform-style: preserve-3d;-webkit-transform: rotateY(0deg) ;opacity: 1.0;}
+ @-webkit-keyframes spin_3d {
+ 0% { -webkit-transform: rotateY(0) rotateZ(0); }
+ 33% { -webkit-transform: rotateY(-20deg) rotateZ(-20deg); }
+ 65% { -webkit-transform: rotateY(20deg) rotateZ(20deg); }
+ 100% { -webkit-transform: rotateY(0deg) rotateZ(0deg); }
+ }
+ .plane > a {display:block;height:100%;width:100%;}
+ .plane {
+ position: absolute;
+ opacity:0.5;
+ background-repeat:no-repeat;
+ -webkit-transition: -webkit-transform 0.3s, opacity 0s;-webkit-backface-visibility: visible;}
+</style>
+
+<script type="text/javascript">
+function loadBlocks() {
+ document.getElementById("ie").style.visibility = "visible";
+ document.getElementById("ie").className = document.getElementById("ie").className + " bz";
+ document.getElementById("grid").className = document.getElementById("grid").className + " fc";
+ document.getElementById("lq").style.display = "none";
+
+ var cubes;
+
+ cubify(200,0,250,50);
+ cubify(800,500,900,600);
+ cubify(250,350,300,400);
+ cubify(600,600,650,650);
+ cubify(850,0,900,50);
+ cubify(650,450,700,500);
+ cubify(100,500,250,650);
+ cubify(400,600,500,700);
+ cubify(700,600,800,700);
+ cubify(350,0,500,150);
+ cubify(450,200,500,250);
+ cubify(550,250,600,300);
+ cubify(0,400,100,450);
+ cubify(600,150,650,200);
+ cubify(600,700,650,750);
+ cubify(150,850,450,950);
+ cubify(200,100,300,200);
+ cubify(750,200,950,400);
+ cubify(250,700,350,800);
+ cubify(600,800,700,900);
+ cubify(100,300,150,350);
+ cubify(0,300,50,350);
+ cubify(850,650,950,700);
+ cubify(900,100,950,150);
+ cubify(200,400,250,450);
+ cubify(200,250,250,300);
+ cubify(300,600,350,650);
+ cubify(50,200,100,250);
+ cubify(100,100,150,150);
+ cubify(0,0,5,5);
+ cubify(470,430,475,435);
+ cubify(520,480,525,485);
+ cubify(570,380,575,385);
+ cubify(550,0,600,50);
+ cubify(650,0,700,50);
+ cubify(425,390,455,400);
+ cubify(435,400,445,430);
+ cubify(525,425,530,430);
+ cubify(450,500,465,515);
+ cubify(650,100,750,200);
+ cubify(0,0,50,50);
+ cubify(700,750,900,800);
+ cubify(495,390,510,405);
+ cubify(495,445,500,450);
+ cubify(560,450,565,455);
+ cubify(460,460,465,465);
+ cubify(525,370,530,375);
+ cubify(490,420,495,425);
+ cubify(520,440,525,445);
+ cubify(510,420,515,425);
+ cubify(495,465,500,470);
+ cubify(475,405,480,410);
+ cubify(545,400,550,405);
+ cubify(485,370,490,375);
+ cubify(430,365,435,370);
+
+ document.getElementById("grid").innerHTML = cubes + document.getElementById("grid").innerHTML;
+
+ function cubify(x1, y1, x2, y2)
+ {
+ var width, height,dw;
+ width = x2 - x1;
+ height = y2 - y1;
+ if (width < height) {
+ dw = width;
+ } else {
+ dw = height;
+ }
+ cubes += addBlock(x1,y1,width,height,dw);
+ }
+
+ function addBlock(x1,y1,xf,qp,dw)
+ {
+ return "<div class='a_cube'><div class='plane one' style='background-color: red;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateY(90deg) rotateZ(-90deg) translateX(0px) translateY(-"+(dw/2)+"px) translateZ("+(dw/2)+"px) translateY(0px);position:absolute;'></div><div class='plane two' style='background-color: blue;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateY(90deg) rotateX(180deg) rotateZ(-90deg) translateX(0px) translateY(-"+(dw/2)+"px) translateZ("+(dw/2)+"px) translateY(0px);position:absolute;'></div><div class='plane three' style='background-color: green;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateX(-90deg) translateX(0px) translateZ("+(dw/2)+"px) translateY(-"+(dw/2)+"px);position:absolute;'></div><div class='plane four' style='background-color: yellow;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateY(90deg) rotateX(90deg) rotateZ(-90deg) translateY(-"+(dw/2)+"px) translateX(0px) translateZ("+(dw/2)+"px) translateY(0px);position:absolute;'></div><div class='plane five' style='background-color: gray;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateY(0deg) translateX(0px) translateZ("+(dw)+"px) translateY(0px);position:absolute;'></div></div>";
+ }
+
+ document.getElementById("grid").style.webkitAnimation = "spin_3d 36s infinite linear";
+};
+
+</script>
+</head>
+<body onload="loadBlocks()">
+<center>
+ <div id="lq">
+ <div style="top: 252px; left: 203px; width: 196px; height: 196px; position: relative;
+ z-index: 0; text-align: left; border: 0px solid #999; padding: 0px; background: #333;
+ -moz-border-radius: 0px; -webkit-border-radius: 0px; text-align: center;">
+ $1 a pixel
+ </div>
+ </div>
+ <div class="ie" id="ie">
+ <div class="grid" id="grid">
+ <div class="row" id="row0"></div><div class="row" id="row1"></div><div class="row" id="row2"></div><div class="row" id="row3"></div><div class="row" id="row4"></div><div class="row" id="row5"></div><div class="row" id="row6"></div><div class="row" id="row7"></div><div class="row" id="row8"></div><div class="row" id="row9"></div>
+ </div>
+ </div>
+</center>
+</body>
+</html>