mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-20 14:17:30 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
BIN
layout/base/tests/chrome/animated.gif
Normal file
BIN
layout/base/tests/chrome/animated.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 527 B |
BIN
layout/base/tests/chrome/blue-32x32.png
Normal file
BIN
layout/base/tests/chrome/blue-32x32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 B |
45
layout/base/tests/chrome/bug1041200_window.html
Normal file
45
layout/base/tests/chrome/bug1041200_window.html
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test for Bug 1041200</title>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/WindowSnapshot.js"></script>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/paint_listener.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<iframe style="width:700px; height:500px; margin-top:200px;" id="ourFrame"></iframe>
|
||||
<script>
|
||||
var SpecialPowers = window.opener.wrappedJSObject.SpecialPowers;
|
||||
var SimpleTest = window.opener.wrappedJSObject.SimpleTest;
|
||||
var ok = window.opener.wrappedJSObject.ok;
|
||||
var info = window.opener.wrappedJSObject.info;
|
||||
|
||||
var viewer =
|
||||
SpecialPowers.wrap(ourFrame).contentWindow
|
||||
.QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor)
|
||||
.getInterface(SpecialPowers.Ci.nsIWebNavigation)
|
||||
.QueryInterface(SpecialPowers.Ci.nsIDocShell)
|
||||
.contentViewer;
|
||||
viewer.fullZoom = 2;
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
window.onload = function() {
|
||||
window.waitForAllPaintsFlushed(function () {
|
||||
// Supply random key to ensure load actually happens
|
||||
ourFrame.src = "data:text/html,<body onload='parent.childLoaded()' style='background:lime'><p>Hello<p>Hello<p>Hello<p>Hello<p>Hello<p>" + Math.random();
|
||||
}, document.getElementById("ourFrame").contentDocument);
|
||||
};
|
||||
|
||||
window.childLoaded = function() {
|
||||
setTimeout(function() {
|
||||
window.waitForAllPaintsFlushed(function(x1, y1, x2, y2) {
|
||||
ok(x2 - x1 >= 700 && y2 - y1 >= 500,
|
||||
"expected to see invalidate of entire frame, got " + [x1,y1,x2,y2].join(','));
|
||||
SimpleTest.finish();
|
||||
window.close();
|
||||
});
|
||||
}, 0);
|
||||
};
|
||||
</script>
|
||||
|
||||
214
layout/base/tests/chrome/bug495648.rdf
Normal file
214
layout/base/tests/chrome/bug495648.rdf
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
<?xml version="1.0"?>
|
||||
<RDF:RDF xmlns:NS1="http://sitedelta.schierla.de/SD-rdf#"
|
||||
xmlns:NC="http://home.netscape.com/NC-rdf#"
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=19&btnG=Suche&meta="
|
||||
NC:name="19 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Bag RDF:about="urn:root:bag">
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=1&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=2&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=3&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=4&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=5&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=6&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=7&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=8&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=9&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=10&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=11&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=12&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=13&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=14&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=15&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=16&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=17&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=18&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=19&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=20&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=21&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=22&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=23&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=24&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=25&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=26&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=27&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=28&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=29&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=30&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=31&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=32&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=33&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=34&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=35&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=36&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=37&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=38&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=39&btnG=Suche&meta="/>
|
||||
<RDF:li RDF:resource="http://www.google.de/search?hl=de&q=40&btnG=Suche&meta="/>
|
||||
</RDF:Bag>
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=2&btnG=Suche&meta="
|
||||
NC:name="2 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=12&btnG=Suche&meta="
|
||||
NC:name="12 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=5&btnG=Suche&meta="
|
||||
NC:name="5 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=6&btnG=Suche&meta="
|
||||
NC:name="6 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=22&btnG=Suche&meta="
|
||||
NC:name="22 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=17&btnG=Suche&meta="
|
||||
NC:name="17 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="urn:root">
|
||||
<NC:links RDF:resource="urn:root:bag"/>
|
||||
</RDF:Description>
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=8&btnG=Suche&meta="
|
||||
NC:name="8 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=1&btnG=Suche&meta="
|
||||
NC:name="1 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=16&btnG=Suche&meta="
|
||||
NC:name="16 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=21&btnG=Suche&meta="
|
||||
NC:name="21 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=20&btnG=Suche&meta="
|
||||
NC:name="20 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=9&btnG=Suche&meta="
|
||||
NC:name="9 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=11&btnG=Suche&meta="
|
||||
NC:name="11 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=14&btnG=Suche&meta="
|
||||
NC:name="14 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=23&btnG=Suche&meta="
|
||||
NC:name="23 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=24&btnG=Suche&meta="
|
||||
NC:name="24 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=18&btnG=Suche&meta="
|
||||
NC:name="18 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www0.pafnet.de/user/322033"
|
||||
NC:name="pafnet - You2_xD"
|
||||
NS1:nextScan="1243707104073"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=3&btnG=Suche&meta="
|
||||
NC:name="3 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=7&btnG=Suche&meta="
|
||||
NC:name="7 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=15&btnG=Suche&meta="
|
||||
NC:name="15 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=4&btnG=Suche&meta="
|
||||
NC:name="4 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=13&btnG=Suche&meta="
|
||||
NC:name="13 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=10&btnG=Suche&meta="
|
||||
NC:name="10 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=25&btnG=Suche&meta="
|
||||
NC:name="25 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=26&btnG=Suche&meta="
|
||||
NC:name="26 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=27&btnG=Suche&meta="
|
||||
NC:name="27 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=28&btnG=Suche&meta="
|
||||
NC:name="28 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=29&btnG=Suche&meta="
|
||||
NC:name="29 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=30&btnG=Suche&meta="
|
||||
NC:name="30 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=31&btnG=Suche&meta="
|
||||
NC:name="31 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=32&btnG=Suche&meta="
|
||||
NC:name="32 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=33&btnG=Suche&meta="
|
||||
NC:name="33 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=34&btnG=Suche&meta="
|
||||
NC:name="34 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=35&btnG=Suche&meta="
|
||||
NC:name="35 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=36&btnG=Suche&meta="
|
||||
NC:name="36 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=37&btnG=Suche&meta="
|
||||
NC:name="37 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=38&btnG=Suche&meta="
|
||||
NC:name="38 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=39&btnG=Suche&meta="
|
||||
NC:name="39 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
<RDF:Description RDF:about="http://www.google.de/search?hl=de&q=40&btnG=Suche&meta="
|
||||
NC:name="40 - Google-Suche"
|
||||
NS1:nextScan="0"
|
||||
NS1:status="0" />
|
||||
</RDF:RDF>
|
||||
4
layout/base/tests/chrome/bug551434_childframe.html
Normal file
4
layout/base/tests/chrome/bug551434_childframe.html
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<script>
|
||||
var gKeyDownChild = 0, gKeyPressChild = 0, gKeyUpChild = 0;
|
||||
</script>
|
||||
<input id='i4' onkeydown="gKeyDownChild++" onkeypress="gKeyPressChild++" onkeyup="gKeyUpChild++; this.parentNode.removeChild(this);">
|
||||
49
layout/base/tests/chrome/chrome.ini
Normal file
49
layout/base/tests/chrome/chrome.ini
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
[DEFAULT]
|
||||
skip-if = os == 'android'
|
||||
support-files =
|
||||
animated.gif
|
||||
blue-32x32.png
|
||||
bug495648.rdf
|
||||
bug551434_childframe.html
|
||||
chrome_content_integration_window.xul
|
||||
chrome_over_plugin_window.xul
|
||||
default_background_window.xul
|
||||
dialog_with_positioning_window.xul
|
||||
no_clip_iframe_subdoc.html
|
||||
no_clip_iframe_window.xul
|
||||
printpreview_bug396024_helper.xul
|
||||
printpreview_bug482976_helper.xul
|
||||
printpreview_helper.xul
|
||||
file_bug1018265.xul
|
||||
|
||||
[test_bug396367-1.html]
|
||||
[test_bug396367-2.html]
|
||||
[test_bug420499.xul]
|
||||
[test_bug458898.html]
|
||||
[test_bug495648.xul]
|
||||
[test_bug504311.xul]
|
||||
[test_bug514660.xul]
|
||||
[test_bug533845.xul]
|
||||
[test_bug551434.html]
|
||||
[test_bug708062.html]
|
||||
[test_bug812817.xul]
|
||||
[test_bug847890_paintFlashing.html]
|
||||
[test_bug1018265.xul]
|
||||
[test_bug1041200.xul]
|
||||
support-files=bug1041200_window.html
|
||||
[test_chrome_content_integration.xul]
|
||||
[test_chrome_over_plugin.xul]
|
||||
[test_default_background.xul]
|
||||
[test_dialog_with_positioning.html]
|
||||
tags = openwindow
|
||||
[test_fixed_bg_scrolling_repaints.html]
|
||||
[test_leaf_layers_partition_browser_window.xul]
|
||||
skip-if = (!debug) || (toolkit == "cocoa") || (os == "linux") # Disabled on Mac and Linux because of Bug 992311
|
||||
[test_no_clip_iframe.xul]
|
||||
[test_prerendered_transforms.html]
|
||||
[test_printpreview.xul]
|
||||
skip-if = os == "linux" && bits == 32 # Disabled on Linux32 for bug 1278957
|
||||
[test_printpreview_bug396024.xul]
|
||||
[test_printpreview_bug482976.xul]
|
||||
[test_scrolling_repaints.html]
|
||||
[test_will_change.html]
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<window title="Content/chrome integration subwindow"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTests()"
|
||||
style="background:black; -moz-appearance:none;">
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/WindowSnapshot.js"></script>
|
||||
|
||||
<stack style="height:300px; width:200px;">
|
||||
<!-- the bottom 100px is a strip of black that should be vixible through the content iframe -->
|
||||
<vbox style="background:pink; border-bottom:100px solid black"/>
|
||||
<!-- the middle 100px is a strip of black in the content iframe -->
|
||||
<!-- the bottom 100px of the iframe is transparent, the top 100px is yellow -->
|
||||
<iframe type="content" style="border:none;"
|
||||
transparent="transparent"
|
||||
src="data:text/html,<div style='position:absolute;left:0;top:0;width:100%;height:100px;background:yellow;border-bottom:100px solid black'>"/>
|
||||
<!-- the top 100px is a strip of black above the content iframe -->
|
||||
<vbox style="border-top:100px solid black;"/>
|
||||
</stack>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
var imports = [ "SimpleTest", "is", "isnot", "ok", "SpecialPowers" ];
|
||||
for (var name of imports) {
|
||||
window[name] = window.opener.wrappedJSObject[name];
|
||||
}
|
||||
|
||||
function runTests() {
|
||||
var testCanvas = snapshotWindow(window);
|
||||
|
||||
var refCanvas = snapshotWindow(window);
|
||||
var ctx = refCanvas.getContext('2d');
|
||||
ctx.fillStyle = "black";
|
||||
ctx.fillRect(0, 0, refCanvas.width, refCanvas.height);
|
||||
|
||||
var comparison = compareSnapshots(testCanvas, refCanvas, true);
|
||||
ok(comparison[0], "Rendering OK, got " + comparison[1] + ", expected " + comparison[2]);
|
||||
|
||||
var tester = window.SimpleTest;
|
||||
window.close();
|
||||
tester.finish();
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
62
layout/base/tests/chrome/chrome_over_plugin_window.xul
Normal file
62
layout/base/tests/chrome/chrome_over_plugin_window.xul
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<window title="Content/chrome integration subwindow"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTests()">\
|
||||
<!-- We're mainly testing that a) translucent chrome elements cause the plugin to be clipped away and
|
||||
b) translucent content elements do NOT cause the plugin to be clipped away -->
|
||||
<stack style="height:100px; width:150px;">
|
||||
<iframe type="content" style="border:none;" id="f"
|
||||
src="data:text/html,<embed id='e' type='application/x-test' wmode='window'
|
||||
style='position:absolute;left:0;top:0;width:100px;height:100px'></embed>
|
||||
<div style='position:absolute;left:0;top:80px;width:100px;height:10px;background:rgba(0,0,128,0.5)'></div>
|
||||
<div style='position:absolute;left:0;top:90px;width:100px;height:10px;background:blue'></div>
|
||||
"/>
|
||||
<vbox>
|
||||
<vbox style="height:25px; background:yellow;"/> <!-- plugin should be covered here -->
|
||||
<vbox style="height:25px; background:rgba(0,128,0,0.5);"/> <!-- plugin should be covered here -->
|
||||
<vbox style="height:50px;"/> <!-- plugin should be visible here -->
|
||||
</vbox>
|
||||
</stack>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
var imports = [ "SimpleTest", "is", "isnot", "ok", "todo" ];
|
||||
for (var name of imports) {
|
||||
window[name] = window.opener.wrappedJSObject[name];
|
||||
}
|
||||
|
||||
var plugin;
|
||||
function waitForPaint() {
|
||||
if (plugin.getPaintCount() < 1) {
|
||||
setTimeout(waitForPaint, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.hasWidget()) {
|
||||
is(plugin.getClipRegionRectCount(), 1, "plugin clip rect count");
|
||||
var left = plugin.getEdge(0);
|
||||
var top = plugin.getEdge(1);
|
||||
is(plugin.getClipRegionRectEdge(0,0) - left, 0, "plugin clip rect left");
|
||||
// our two vboxes with backgrounds should cause the top of the plugin to be clipped
|
||||
is(plugin.getClipRegionRectEdge(0,1) - top, 50, "plugin clip rect top");
|
||||
is(plugin.getClipRegionRectEdge(0,2) - left, 100, "plugin clip rect right");
|
||||
// of the two content DIVs, the first one should not cause the plugin to be clipped because
|
||||
// it's transparent. The second one should cause the plugin to be clipped.
|
||||
is(plugin.getClipRegionRectEdge(0,3) - top, 90, "plugin clip rect bottom");
|
||||
} else {
|
||||
todo(false, "Test only tests windowed plugins");
|
||||
}
|
||||
|
||||
var tester = window.SimpleTest;
|
||||
window.close();
|
||||
tester.finish();
|
||||
}
|
||||
|
||||
function runTests() {
|
||||
plugin = document.getElementById("f").contentDocument.getElementById("e").wrappedJSObject;
|
||||
waitForPaint();
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
60
layout/base/tests/chrome/default_background_window.xul
Normal file
60
layout/base/tests/chrome/default_background_window.xul
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTests()">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/WindowSnapshot.js"></script>
|
||||
|
||||
<iframe type="content" id="f" src="about:blank" style="border:1px solid black;"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var imports = [ "SimpleTest", "is", "isnot", "ok" ];
|
||||
for (var name of imports) {
|
||||
window[name] = window.opener.wrappedJSObject[name];
|
||||
}
|
||||
|
||||
function snapshot(win) {
|
||||
var el = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
|
||||
el.width = win.innerWidth;
|
||||
el.height = win.innerHeight;
|
||||
|
||||
var ctx = el.getContext("2d");
|
||||
ctx.drawWindow(win, 0, 0,
|
||||
win.innerWidth, win.innerHeight,
|
||||
"rgba(0,0,0,0)", 0);
|
||||
return el;
|
||||
}
|
||||
|
||||
var color = '#2468AC';
|
||||
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
prefs.setCharPref('browser.display.background_color', color);
|
||||
|
||||
function runTests() {
|
||||
var f = document.getElementById("f");
|
||||
|
||||
var testCanvas = snapshot(f.contentWindow);
|
||||
prefs.clearUserPref('browser.display.background_color');
|
||||
|
||||
var refCanvas = snapshot(f.contentWindow);
|
||||
var ctx = refCanvas.getContext('2d');
|
||||
ctx.fillStyle = color;
|
||||
ctx.fillRect(0, 0, refCanvas.width, refCanvas.height);
|
||||
|
||||
var comparison = compareSnapshots(testCanvas, refCanvas, true);
|
||||
ok(comparison[0], "Rendering OK, got " + comparison[1] + ", expected " + comparison[2]);
|
||||
|
||||
var tester = window.SimpleTest;
|
||||
window.close();
|
||||
tester.finish();
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
30
layout/base/tests/chrome/dialog_with_positioning_window.xul
Normal file
30
layout/base/tests/chrome/dialog_with_positioning_window.xul
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="setTimeout(runTest, 0)">
|
||||
<vbox>
|
||||
<text value="powered by example.com" style="padding: 16px;"/>
|
||||
</vbox>
|
||||
<hbox id="t" style="position: fixed; right: 16px; bottom: 16px;">
|
||||
<button label="OK"/>
|
||||
</hbox>
|
||||
<script><![CDATA[
|
||||
var SimpleTest = window.opener.wrappedJSObject.SimpleTest;
|
||||
var SpecialPowers = window.opener.wrappedJSObject.SpecialPowers;
|
||||
var is = window.opener.wrappedJSObject.is;
|
||||
var ok = window.opener.wrappedJSObject.ok;
|
||||
|
||||
// We run this off a setTimeout from onload, because the XUL window
|
||||
// only does its intrinsic-height layout after the load event has
|
||||
// finished
|
||||
function runTest() {
|
||||
var t = document.getElementById("t");
|
||||
var tBottom = t.getBoundingClientRect().bottom;
|
||||
is(tBottom, document.documentElement.getBoundingClientRect().bottom - 16,
|
||||
"check fixed-pos element t bottom positioned correctly");
|
||||
ok(tBottom < 200, "fixed-pos element t bottom must be sane, less than 200 (got " + tBottom + ")");
|
||||
window.close();
|
||||
SimpleTest.finish();
|
||||
}
|
||||
]]></script>
|
||||
</window>
|
||||
51
layout/base/tests/chrome/file_bug1018265.xul
Normal file
51
layout/base/tests/chrome/file_bug1018265.xul
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet type="text/css" href="/tests/SimpleTest/test.css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1018265
|
||||
-->
|
||||
<window title="Mozilla Bug 1018265"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="setTimeout(run, 0);">
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
/** Test for Bug 1018265 **/
|
||||
|
||||
var testcontent = null;
|
||||
|
||||
function run() {
|
||||
testcontent = document.getElementById("testcontent");
|
||||
shouldHaveTwoNonHiddenContentViewers();
|
||||
testcontent.setAttribute("src", "foobarpage");
|
||||
setTimeout(errorPageLoaded, 2500)
|
||||
}
|
||||
|
||||
function errorPageLoaded() {
|
||||
testcontent.addEventListener("pageshow", didGoBack, true);
|
||||
setTimeout("testcontent.contentWindow.history.back();", 0);
|
||||
}
|
||||
|
||||
function didGoBack(e) {
|
||||
testcontent.removeEventListener("pageshow", didGoBack, true);
|
||||
shouldHaveTwoNonHiddenContentViewers();
|
||||
opener.done();
|
||||
window.close();
|
||||
}
|
||||
|
||||
function getContentViewer(win) {
|
||||
return win.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIDocShell).contentViewer;
|
||||
}
|
||||
|
||||
function shouldHaveTwoNonHiddenContentViewers() {
|
||||
opener.is(getContentViewer(testcontent.contentWindow).isHidden, false, "Top level ContentViewer should not be hidden.");
|
||||
opener.is(getContentViewer(testcontent.contentWindow.frames[0]).isHidden, false, " Iframe's ContentViewer should not be hidden.");
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<browser type="content" id="testcontent" flex="1" src="data:text/html,<iframe></iframe>"/>
|
||||
</window>
|
||||
7
layout/base/tests/chrome/no_clip_iframe_subdoc.html
Normal file
7
layout/base/tests/chrome/no_clip_iframe_subdoc.html
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<body style="margin:0; background:lime;">
|
||||
<div id="d" style="position:relative; top:-50px; width:150px; height:250px; background:yellow;"></div>
|
||||
<div id="p" style="margin-top:-50px; width:150px; height:50px;"></div>
|
||||
</body>
|
||||
</html>
|
||||
96
layout/base/tests/chrome/no_clip_iframe_window.xul
Normal file
96
layout/base/tests/chrome/no_clip_iframe_window.xul
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTests()">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/WindowSnapshot.js"></script>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/paint_listener.js"></script>
|
||||
|
||||
<div id="container" xmlns="http://www.w3.org/1999/xhtml" style="height:400px; overflow:auto; background:gray">
|
||||
<div style="height:0">
|
||||
<iframe type="content" id="f" src="no_clip_iframe_subdoc.html"
|
||||
style="margin-top:50px; border:1px solid black; width:100px; height:100px;"/>
|
||||
</div>
|
||||
<div id="ref" style="background:gray;">
|
||||
<div style="border:1px solid black; margin-top:50px; width:100px; height:100px;">
|
||||
<div id="ref-d" style="background:lime; height:250px; width:150px;">
|
||||
<div style="position:relative; top:-50px; width:150px; height:100%; background:yellow;"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<vbox flex="1"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
var imports = [ "SimpleTest", "is", "isnot", "ok", "onerror" ];
|
||||
for (var name of imports) {
|
||||
window[name] = window.opener.wrappedJSObject[name];
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var Ci = Components.interfaces;
|
||||
var frame = document.getElementById("f");
|
||||
var fl = frame.QueryInterface(Ci.nsIFrameLoaderOwner).frameLoader;
|
||||
is(fl.clipSubdocument, true, "clipSubdocument should default to true");
|
||||
fl.clipSubdocument = false;
|
||||
is(fl.clipSubdocument, false, "clipSubdocument should have been set to false");
|
||||
|
||||
function runTests() {
|
||||
var ref = document.getElementById("ref");
|
||||
frame.contentWindow.scrollTo(0,0);
|
||||
|
||||
ref.style.visibility = "hidden";
|
||||
var testCanvas = snapshotWindow(window);
|
||||
ref.style.visibility = "";
|
||||
var refCanvas = snapshotWindow(window);
|
||||
var comparison = compareSnapshots(testCanvas, refCanvas, true);
|
||||
ok(comparison[0], "Basic overflow drawing; got " + comparison[1] + ", expected " + comparison[2]);
|
||||
|
||||
document.getElementById("container").style.height = "200px";
|
||||
ref.style.visibility = "hidden";
|
||||
testCanvas = snapshotWindow(window);
|
||||
ref.style.visibility = "";
|
||||
refCanvas = snapshotWindow(window);
|
||||
comparison = compareSnapshots(testCanvas, refCanvas, true);
|
||||
ok(comparison[0], "Drawing with vertical scrollbar to show overflow area computation; got " +
|
||||
comparison[1] + ", expected " + comparison[2]);
|
||||
|
||||
frame.contentDocument.getElementById("d").style.height = "350px";
|
||||
document.getElementById("ref-d").style.height = "350px";
|
||||
ref.style.visibility = "hidden";
|
||||
testCanvas = snapshotWindow(window);
|
||||
ref.style.visibility = "";
|
||||
refCanvas = snapshotWindow(window);
|
||||
comparison = compareSnapshots(testCanvas, refCanvas, true);
|
||||
ok(comparison[0], "testing dynamic overflow area change affecting scrollbar; got " +
|
||||
comparison[1] + ", expected " + comparison[2]);
|
||||
|
||||
// Now do invalidation tests
|
||||
ref.style.visibility = "hidden";
|
||||
document.getElementById("container").style.height = "400px";
|
||||
waitForAllPaintsFlushed(function() {
|
||||
frame.contentWindow.scrollTo(0,80);
|
||||
waitForAllPaintsFlushed(function(x1, y1, x2, y2) {
|
||||
ok(x1 <= 1 && x2 >= 151 && y1 <= 0 && y2 >= 400,
|
||||
"Entire scrolled region is painted: " + x1 + "," + y1 + "," + x2 + "," + y2);
|
||||
frame.contentDocument.getElementById("p").style.background = "cyan";
|
||||
waitForAllPaintsFlushed(function(x1, y1, x2, y2) {
|
||||
ok(x1 <= 1 && x2 >= 151 && y1 <= 271 && y2 >= 320,
|
||||
"Entire updated region is painted: " + x1 + "," + y1 + "," + x2 + "," + y2);
|
||||
|
||||
var tester = window.SimpleTest;
|
||||
window.close();
|
||||
tester.finish();
|
||||
}, frame.contentDocument);
|
||||
});
|
||||
});
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
123
layout/base/tests/chrome/printpreview_bug396024_helper.xul
Normal file
123
layout/base/tests/chrome/printpreview_bug396024_helper.xul
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=396024
|
||||
-->
|
||||
<window title="Mozilla Bug 396024" onload="run()"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<iframe id="i" src="about:blank" type="content"></iframe>
|
||||
<iframe src="about:blank" type="content"></iframe>
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
var is = window.opener.wrappedJSObject.is;
|
||||
var ok = window.opener.wrappedJSObject.ok;
|
||||
var todo = window.opener.wrappedJSObject.todo;
|
||||
var SimpleTest = window.opener.wrappedJSObject.SimpleTest;
|
||||
var gWbp;
|
||||
function printpreview() {
|
||||
gWbp = window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebBrowserPrint);
|
||||
var listener = {
|
||||
onLocationChange: function(webProgress, request, location, flags) { },
|
||||
onProgressChange: function(webProgress, request, curSelfProgress,
|
||||
maxSelfProgress, curTotalProgress,
|
||||
maxTotalProgress) { },
|
||||
onSecurityChange: function(webProgress, request, state) { },
|
||||
onStateChange: function(webProgress, request, stateFlags, status) { },
|
||||
onStatusChange: function(webProgress, request, status, message) { },
|
||||
QueryInterface: function(iid) {
|
||||
if (iid.equals(Components.interfaces.nsIWebProgressListener) ||
|
||||
iid.equals(Components.interfaces.nsISupportsWeakReference))
|
||||
return this;
|
||||
throw Components.results.NS_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
prefs.setBoolPref('print.show_print_progress', false);
|
||||
//XXX I would have thought this would work, instead I'm forced to use prefs service
|
||||
gWbp.globalPrintSettings.showPrintProgress = false;
|
||||
gWbp.printPreview(gWbp.globalPrintSettings, window.frames[0], listener);
|
||||
prefs.clearUserPref('print.show_print_progress');
|
||||
}
|
||||
|
||||
function exitprintpreview() {
|
||||
window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebBrowserPrint).exitPrintPreview();
|
||||
}
|
||||
|
||||
function finish() {
|
||||
SimpleTest.finish();
|
||||
window.close();
|
||||
}
|
||||
|
||||
function run()
|
||||
{
|
||||
/** Test for Bug 396024 **/
|
||||
var printService = Components.classes["@mozilla.org/gfx/printsettings-service;1"]
|
||||
.getService(Components.interfaces.nsIPrintSettingsService);
|
||||
|
||||
try {
|
||||
Components.classes["@mozilla.org/gfx/printerenumerator;1"]
|
||||
.getService(Components.interfaces.nsIPrinterEnumerator);
|
||||
} catch(e) {
|
||||
todo(false, "Test skipped on MacOSX, as the print preview code doesn't work there");
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
if (printService.defaultPrinterName != '') {
|
||||
printpreview();
|
||||
ok(gWbp.doingPrintPreview, "Should be doing print preview");
|
||||
exitprintpreview();
|
||||
ok(!gWbp.doingPrintPreview, "Should not be doing print preview anymore1");
|
||||
printpreview();
|
||||
setTimeout(run2, 0)
|
||||
} else {
|
||||
todo(false, "No printer seems installed on this machine, that is necessary for this test");
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
function run2() {
|
||||
var loadhandler = function() {
|
||||
document.getElementById("i").removeEventListener("load", arguments.callee, true);
|
||||
setTimeout(run3, 0);
|
||||
};
|
||||
document.getElementById("i").addEventListener("load", loadhandler, true);
|
||||
window.frames[0].location.reload();
|
||||
}
|
||||
|
||||
function run3() {
|
||||
gWbp = window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebBrowserPrint);
|
||||
ok(gWbp.doingPrintPreview, "Should be doing print preview");
|
||||
exitprintpreview();
|
||||
setTimeout(run4, 0);
|
||||
}
|
||||
|
||||
function run4() {
|
||||
var i = document.getElementById("i");
|
||||
var x = i.parentNode.removeChild(i);
|
||||
var loadhandler = function() {
|
||||
document.getElementById("i").removeEventListener("load", loadhandler, true);
|
||||
setTimeout(run5, 0);
|
||||
};
|
||||
x.addEventListener("load", loadhandler, true);
|
||||
document.documentElement.getBoundingClientRect();
|
||||
document.documentElement.appendChild(x);
|
||||
gWbp = window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebBrowserPrint);
|
||||
ok(!gWbp.doingPrintPreview, "Should not be doing print preview anymore2");
|
||||
}
|
||||
|
||||
function run5() {
|
||||
//XXX this shouldn't be necessary, see bug 405555
|
||||
printpreview();
|
||||
exitprintpreview();
|
||||
finish(); //should not have crashed after all of this
|
||||
}
|
||||
]]></script>
|
||||
</window>
|
||||
82
layout/base/tests/chrome/printpreview_bug482976_helper.xul
Normal file
82
layout/base/tests/chrome/printpreview_bug482976_helper.xul
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=482976
|
||||
-->
|
||||
<window title="Mozilla Bug 482976" onload="run1()"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<iframe src="about:blank" type="content"></iframe>
|
||||
<iframe src="about:blank" type="content"></iframe>
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
var is = window.opener.wrappedJSObject.is;
|
||||
var ok = window.opener.wrappedJSObject.ok;
|
||||
var todo = window.opener.wrappedJSObject.todo;
|
||||
var SimpleTest = window.opener.wrappedJSObject.SimpleTest;
|
||||
var gWbp;
|
||||
function printpreview() {
|
||||
gWbp = window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebBrowserPrint);
|
||||
var listener = {
|
||||
onLocationChange: function(webProgress, request, location, flags) { },
|
||||
onProgressChange: function(webProgress, request, curSelfProgress,
|
||||
maxSelfProgress, curTotalProgress,
|
||||
maxTotalProgress) { },
|
||||
onSecurityChange: function(webProgress, request, state) { },
|
||||
onStateChange: function(webProgress, request, stateFlags, status) { },
|
||||
onStatusChange: function(webProgress, request, status, message) { },
|
||||
QueryInterface: function(iid) {
|
||||
if (iid.equals(Components.interfaces.nsIWebProgessListener) ||
|
||||
iid.equals(Components.interfaces.nsISupportsWeakReference))
|
||||
return this;
|
||||
throw Components.results.NS_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
prefs.setBoolPref('print.show_print_progress', false);
|
||||
//XXX I would have thought this would work, instead I'm forced to use prefs service
|
||||
gWbp.globalPrintSettings.showPrintProgress = false;
|
||||
gWbp.printPreview(gWbp.globalPrintSettings, window.frames[0], listener);
|
||||
prefs.clearUserPref('print.show_print_progress');
|
||||
}
|
||||
|
||||
function exitprintpreview() {
|
||||
window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebBrowserPrint).exitPrintPreview();
|
||||
}
|
||||
|
||||
function finish() {
|
||||
SimpleTest.finish();
|
||||
window.close();
|
||||
}
|
||||
|
||||
function run1()
|
||||
{
|
||||
/** Test for Bug 482976 **/
|
||||
var printService = Components.classes["@mozilla.org/gfx/printsettings-service;1"]
|
||||
.getService(Components.interfaces.nsIPrintSettingsService);
|
||||
|
||||
try {
|
||||
Components.classes["@mozilla.org/gfx/printerenumerator;1"]
|
||||
.getService(Components.interfaces.nsIPrinterEnumerator);
|
||||
} catch(e) {
|
||||
todo(false, "Test skipped on MacOSX, as the print preview code doesn't work there");
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
if (printService.defaultPrinterName != '') {
|
||||
printpreview();
|
||||
ok(gWbp.doingPrintPreview, "Should be doing print preview");
|
||||
exitprintpreview();
|
||||
ok(!gWbp.doingPrintPreview, "Should not be doing print preview anymore");
|
||||
} else {
|
||||
todo(false, "No printer seems installed on this machine, that is necessary for this test");
|
||||
}
|
||||
finish();
|
||||
}
|
||||
]]></script>
|
||||
</window>
|
||||
274
layout/base/tests/chrome/printpreview_helper.xul
Normal file
274
layout/base/tests/chrome/printpreview_helper.xul
Normal file
|
|
@ -0,0 +1,274 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window onload="runTests()"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<iframe height="200" width="600" type="content"></iframe>
|
||||
<iframe height="200" width="600" type="content"></iframe>
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
var is = window.opener.wrappedJSObject.is;
|
||||
var isnot = window.opener.wrappedJSObject.isnot;
|
||||
var ok = window.opener.wrappedJSObject.ok;
|
||||
var todo = window.opener.wrappedJSObject.todo;
|
||||
var SimpleTest = window.opener.wrappedJSObject.SimpleTest;
|
||||
var gWbp;
|
||||
var ctx1;
|
||||
var ctx2;
|
||||
var counter = 0;
|
||||
|
||||
var file = Components.classes["@mozilla.org/file/directory_service;1"]
|
||||
.getService(Components.interfaces.nsIProperties)
|
||||
.get("TmpD", Components.interfaces.nsILocalFile);
|
||||
filePath = file.path;
|
||||
|
||||
function printpreview() {
|
||||
gWbp = window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebBrowserPrint);
|
||||
var listener = {
|
||||
onLocationChange: function(webProgress, request, location, flags) { },
|
||||
onProgressChange: function(webProgress, request, curSelfProgress,
|
||||
maxSelfProgress, curTotalProgress,
|
||||
maxTotalProgress) { },
|
||||
onSecurityChange: function(webProgress, request, state) { },
|
||||
onStateChange: function(webProgress, request, stateFlags, status) { },
|
||||
onStatusChange: function(webProgress, request, status, message) { },
|
||||
QueryInterface: function(iid) {
|
||||
if (iid.equals(Components.interfaces.nsIWebProgressListener) ||
|
||||
iid.equals(Components.interfaces.nsISupportsWeakReference))
|
||||
return this;
|
||||
throw Components.results.NS_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
prefs.setBoolPref('print.show_print_progress', false);
|
||||
//XXX I would have thought this would work, instead I'm forced to use prefs service
|
||||
gWbp.globalPrintSettings.showPrintProgress = false;
|
||||
var before = 0;
|
||||
var after = 0;
|
||||
function beforeprint() { ++before; }
|
||||
function afterprint() { ++after; }
|
||||
window.frames[0].addEventListener("beforeprint", beforeprint, true);
|
||||
window.frames[0].addEventListener("afterprint", afterprint, true);
|
||||
gWbp.printPreview(gWbp.globalPrintSettings, window.frames[0], listener);
|
||||
is(before, 1, "Should have called beforeprint listener!");
|
||||
is(after, 1, "Should have called afterprint listener!");
|
||||
window.frames[0].removeEventListener("beforeprint", beforeprint, true);
|
||||
window.frames[0].removeEventListener("afterprint", afterprint, true);
|
||||
prefs.clearUserPref('print.show_print_progress');
|
||||
}
|
||||
|
||||
function exitprintpreview() {
|
||||
window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebBrowserPrint).exitPrintPreview();
|
||||
}
|
||||
|
||||
function finish() {
|
||||
SimpleTest.finish();
|
||||
window.close();
|
||||
}
|
||||
|
||||
function runTests()
|
||||
{
|
||||
var printService = Components.classes["@mozilla.org/gfx/printsettings-service;1"]
|
||||
.getService(Components.interfaces.nsIPrintSettingsService);
|
||||
|
||||
try {
|
||||
Components.classes["@mozilla.org/gfx/printerenumerator;1"]
|
||||
.getService(Components.interfaces.nsIPrinterEnumerator);
|
||||
} catch(e) {
|
||||
todo(false, "Test skipped on MacOSX, as the print preview code doesn't work there");
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
if (printService.defaultPrinterName != '') {
|
||||
startTest1();
|
||||
} else {
|
||||
todo(false, "No printer seems installed on this machine, that is necessary for this test");
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
function compareCanvases() {
|
||||
return window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIDOMWindowUtils)
|
||||
.compareCanvases(document.getElementsByTagName("canvas")[0],
|
||||
document.getElementsByTagName("canvas")[1],
|
||||
{}) == 0;
|
||||
}
|
||||
|
||||
function addHTMLContent(parent) {
|
||||
var n = parent.ownerDocument.createElement("div");
|
||||
parent.appendChild(n);
|
||||
var s = "<iframe width='500' height='40' src='data:text/plain,ThisIsAnIframeCreatedDuringPrintPreview'></iframe>";
|
||||
s += "<table>";
|
||||
for (var i = 1; i < 501; ++i) {
|
||||
s += "<tr><td>Cell A" + i + "</td><td>Cell B" + i + "</td><td>Cell C" + i + "</td></tr>";
|
||||
}
|
||||
s += "</table>";
|
||||
n.innerHTML = s;
|
||||
}
|
||||
|
||||
function startTest1() {
|
||||
ctx1 = document.getElementsByTagName("canvas")[0].getContext("2d");
|
||||
ctx2 = document.getElementsByTagName("canvas")[1].getContext("2d");
|
||||
window.frames[0].document.body.innerHTML = "<div> </div><div>" + counter + " timers</div><div> </div>";
|
||||
|
||||
// Note this timeout is needed so that we can check that timers run
|
||||
// after print preview, but not during it.
|
||||
window.frames[0].wrappedJSObject.counter = counter;
|
||||
window.frames[0].counterTimeout = "document.body.firstChild.nextSibling.innerHTML = ++counter + ' timers';" +
|
||||
"window.setTimeout(counterTimeout, 0);";
|
||||
window.frames[0].setTimeout(window.frames[0].counterTimeout, 0);
|
||||
window.frames[0].document.body.firstChild.innerHTML = "Print preview";
|
||||
|
||||
printpreview();
|
||||
ctx1.drawWindow(window.frames[1], 0, 0, 400, 400, "rgb(256,256,256)");
|
||||
window.frames[0].document.body.firstChild.innerHTML = "Galley presentation";
|
||||
|
||||
// Add some elements.
|
||||
addHTMLContent(window.frames[0].document.body.lastChild);
|
||||
// Delete them.
|
||||
window.frames[0].document.body.lastChild.innerHTML = "";
|
||||
// And readd.
|
||||
addHTMLContent(window.frames[0].document.body.lastChild);
|
||||
|
||||
setTimeout(finalizeTest1, 1000);
|
||||
}
|
||||
|
||||
function finalizeTest1() {
|
||||
ctx2.drawWindow(window.frames[1], 0, 0, 400, 400, "rgb(256,256,256)");
|
||||
exitprintpreview();
|
||||
ok(compareCanvases(), "Canvas should be the same!");
|
||||
counter = window.frames[0].counter;
|
||||
// This timeout is needed so that we can check that timers do run after
|
||||
// print preview.
|
||||
setTimeout(runTest2, 1000);
|
||||
}
|
||||
|
||||
function runTest2() {
|
||||
isnot(window.frames[0].document.body.firstChild.nextSibling.textContent, "0 timers", "Timers should have run!");
|
||||
isnot(window.frames[0].counter, 0, "Timers should have run!");
|
||||
counter = window.frames[0].counter;
|
||||
window.frames[0].counterTimeout = "";
|
||||
setTimeout(runTest3, 0);
|
||||
}
|
||||
|
||||
var elementIndex = 0;
|
||||
var compareEmptyElement = true;
|
||||
var emptyFormElements =
|
||||
["<input type='text'>",
|
||||
"<input type='password'>",
|
||||
"<input type='file'>",
|
||||
"<input type='button'>",
|
||||
"<input type='submit'>",
|
||||
"<input type='reset'>",
|
||||
"<input type='checkbox'>",
|
||||
"<input type='radio'>",
|
||||
"<select></select>",
|
||||
"<select size='5'></select>",
|
||||
"<textarea></textarea>"];
|
||||
|
||||
var formElements =
|
||||
["<input type='text' value='text'>",
|
||||
"<input type='password' value='password'>",
|
||||
"<input type='file' value='" + filePath + "'>",
|
||||
"<input type='button' value='button'>",
|
||||
"<input type='submit' value='submit button'>",
|
||||
"<input type='reset' value='reset button'>",
|
||||
"<input type='checkbox' checked>",
|
||||
"<input type='radio' checked>",
|
||||
"<select><option>option1</option></select>",
|
||||
"<select size='5'><option>1</option><option>2</option><option>3</option></select>",
|
||||
"<textarea value='textarea'>textarea</textarea>"];
|
||||
|
||||
function runTest3() {
|
||||
if (compareEmptyElement) {
|
||||
var currentIndex = elementIndex;
|
||||
++elementIndex;
|
||||
if (elementIndex >= emptyFormElements.length) {
|
||||
elementIndex = 0;
|
||||
compareEmptyElement = false;
|
||||
}
|
||||
compareFormElementPrint(emptyFormElements[currentIndex], emptyFormElements[currentIndex], true);
|
||||
return;
|
||||
} else if (elementIndex < emptyFormElements.length) {
|
||||
var currentIndex = elementIndex;
|
||||
++elementIndex;
|
||||
compareFormElementPrint(emptyFormElements[currentIndex], formElements[currentIndex], false);
|
||||
return;
|
||||
}
|
||||
|
||||
setTimeout(runTest4, 0)
|
||||
}
|
||||
|
||||
function compareFormElementPrint(el1, el2, equals) {
|
||||
window.frames[0].document.body.innerHTML = el1;
|
||||
window.frames[0].document.body.firstChild.value =
|
||||
window.frames[0].document.body.firstChild.getAttribute('value');
|
||||
printpreview();
|
||||
ctx1.drawWindow(window.frames[1], 0, 0, 400, 400, "rgb(256,256,256)");
|
||||
exitprintpreview();
|
||||
window.frames[0].document.body.innerHTML = el2;
|
||||
window.frames[0].document.body.firstChild.value =
|
||||
window.frames[0].document.body.firstChild.getAttribute('value');
|
||||
printpreview();
|
||||
ctx2.drawWindow(window.frames[1], 0, 0, 400, 400, "rgb(256,256,256)");
|
||||
exitprintpreview();
|
||||
is(compareCanvases(), equals,
|
||||
"Comparing print preview didn't succeed [" + el1 + " : " + el2 + "]");
|
||||
setTimeout(runTest3, 100);
|
||||
}
|
||||
|
||||
// This is a crash test for bug 539060.
|
||||
function runTest4() {
|
||||
window.frames[0].document.body.innerHTML =
|
||||
"<iframe style='display: none;' src='data:text/html,<iframe>'></iframe>";
|
||||
setTimeout(runTest4end, 500);
|
||||
}
|
||||
|
||||
function runTest4end() {
|
||||
printpreview();
|
||||
exitprintpreview();
|
||||
|
||||
runTest5();
|
||||
}
|
||||
|
||||
// This is a crash test for bug 595337
|
||||
function runTest5() {
|
||||
window.frames[0].document.body.innerHTML =
|
||||
'<iframe style="position: fixed; visibility: hidden; bottom: 10em;"></iframe>' +
|
||||
'<input contenteditable="true" style="display: table; page-break-before: left; width: 10000px;">';
|
||||
printpreview();
|
||||
exitprintpreview();
|
||||
|
||||
setTimeout(runTest6, 0);
|
||||
}
|
||||
|
||||
// Crash test for bug 878037
|
||||
function runTest6() {
|
||||
window.frames[0].document.body.innerHTML =
|
||||
'<style> li { list-style-image: url("animated.gif"); } </style>' +
|
||||
'<li>Firefox will crash if you try and print this page</li>';
|
||||
|
||||
setTimeout(runTest6end, 500);
|
||||
}
|
||||
|
||||
function runTest6end() {
|
||||
printpreview();
|
||||
exitprintpreview();
|
||||
|
||||
finish();
|
||||
}
|
||||
|
||||
]]></script>
|
||||
<table style="border: 1px solid black;" xmlns="http://www.w3.org/1999/xhtml">
|
||||
<tr><th>Print preview canvas 1</th><th>Print preview canvas 2</th></tr>
|
||||
<tr>
|
||||
<td><canvas height="400" width="400"></canvas></td>
|
||||
<td><canvas height="400" width="400"></canvas></td>
|
||||
</tr></table>
|
||||
</window>
|
||||
38
layout/base/tests/chrome/test_bug1018265.xul
Normal file
38
layout/base/tests/chrome/test_bug1018265.xul
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1018265
|
||||
-->
|
||||
<window title="Mozilla Bug 1018265"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="run()">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
/** Test for Bug 1018265 **/
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function run() {
|
||||
window.open("file_bug1018265.xul", "contentViewerTest", "chrome,width=100,height=100");
|
||||
}
|
||||
|
||||
function done() {
|
||||
ok(true, "done");
|
||||
setTimeout("SimpleTest.finish()", 0);
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018265"
|
||||
target="_blank">Mozilla Bug 1018265</a>
|
||||
</body>
|
||||
</window>
|
||||
23
layout/base/tests/chrome/test_bug1041200.xul
Normal file
23
layout/base/tests/chrome/test_bug1041200.xul
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
// Run the test in a separate window so that the test runs as a chrome
|
||||
// window
|
||||
window.open("bug1041200_window.html", "bug1041200",
|
||||
"chrome,width=800,height=800");
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
49
layout/base/tests/chrome/test_bug396367-1.html
Normal file
49
layout/base/tests/chrome/test_bug396367-1.html
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=396367
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 396367</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
<script>
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function finish() {
|
||||
ok(true, "didn't crash");
|
||||
var docviewer = getdocviewer();
|
||||
docviewer.textZoom = 1;
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
function getdocviewer() {
|
||||
var navigator1 = top.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation);
|
||||
var docShell = navigator1.QueryInterface(Components.interfaces.nsIDocShell);
|
||||
var docviewer = docShell.contentViewer;
|
||||
return docviewer;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=396367">Mozilla Bug 396367</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
|
||||
<input>
|
||||
<script>document.body.setAttribute('style', 'display: -moz-box; overflow: scroll;');</script>
|
||||
<script>
|
||||
var docviewer = getdocviewer();
|
||||
docviewer.textZoom=Math.floor(10*Math.random())/4+0.2;
|
||||
document.documentElement.offsetHeight;
|
||||
setTimeout(finish, 0);
|
||||
</script>
|
||||
|
||||
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
56
layout/base/tests/chrome/test_bug396367-2.html
Normal file
56
layout/base/tests/chrome/test_bug396367-2.html
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=396367
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 396367</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
<style>select::after { content:"m"; }</style>
|
||||
<script>
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function finish() {
|
||||
ok(true, "didn't crash");
|
||||
var docviewer = getdocviewer();
|
||||
docviewer.textZoom = 1;
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
function getdocviewer() {
|
||||
var navigator1 = top.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation);
|
||||
var docShell = navigator1.QueryInterface(Components.interfaces.nsIDocShell);
|
||||
var docviewer = docShell.contentViewer;
|
||||
return docviewer;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=396367">Mozilla Bug 396367</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
|
||||
<div style="overflow: scroll; float: left;">
|
||||
|
||||
<select></select>
|
||||
|
||||
<li style="display: table-cell;">
|
||||
|
||||
<script>
|
||||
var docviewer = getdocviewer();
|
||||
docviewer.textZoom=Math.floor(10*Math.random())/4+0.2;
|
||||
document.documentElement.offsetHeight;
|
||||
setTimeout(finish, 0);
|
||||
</script>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
129
layout/base/tests/chrome/test_bug420499.xul
Normal file
129
layout/base/tests/chrome/test_bug420499.xul
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=420499
|
||||
-->
|
||||
<window title="Mozilla Bug 420499" onload="setTimeout(focusInput, 500);"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
|
||||
|
||||
|
||||
|
||||
<menu id="menu" label="Menu">
|
||||
<menupopup id="file-popup">
|
||||
<!-- <textbox id="some-text" maxlength="10" value="some text"/> -->
|
||||
<menu label="submenu">
|
||||
<menupopup id="file-popup-inner">
|
||||
|
||||
<menuitem label="Item1"/>
|
||||
<menuitem label="Item2"/>
|
||||
<textbox id="some-text" maxlength="10" value="some more text"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuitem label="Item3"/>
|
||||
<menuitem label="Item4"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
|
||||
<popupset>
|
||||
<popup id="contextmenu">
|
||||
<menuitem label="Cut"/>
|
||||
<menuitem label="Copy"/>
|
||||
<menuitem label="Paste"/>
|
||||
</popup>
|
||||
<tooltip id="tooltip" orient="vertical">
|
||||
<description value="This is a tooltip"/>
|
||||
</tooltip>
|
||||
</popupset>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml" bgcolor="white">
|
||||
|
||||
<p id="par1">Paragraph 1</p>
|
||||
<p id="par2">Paragraph 2</p>
|
||||
<p id="par3">Paragraph 3</p>
|
||||
<p id="par4">Paragraph 4</p>
|
||||
<p id="par5">Paragraph 5</p>
|
||||
|
||||
<input type="text" id="text-input" maxlength="10" value="some more text"/> <br />
|
||||
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=420499"
|
||||
target="_blank">Mozilla Bug 420499</a>
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript"><![CDATA[
|
||||
|
||||
/** Test for Bug 420499 **/
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function getSelectionController() {
|
||||
return document.docShell
|
||||
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsISelectionDisplay)
|
||||
.QueryInterface(Components.interfaces.nsISelectionController);
|
||||
}
|
||||
|
||||
function isCaretVisible() {
|
||||
window.QueryInterface(Components.interfaces.nsIInterfaceRequestor);
|
||||
var docShell = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebNavigation)
|
||||
.QueryInterface(Components.interfaces.nsIDocShell);
|
||||
var selCon = docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsISelectionDisplay)
|
||||
.QueryInterface(Components.interfaces.nsISelectionController);
|
||||
return selCon.caretVisible;
|
||||
}
|
||||
|
||||
function focusInput() {
|
||||
ok(!isCaretVisible(), "Caret shouldn't be visible");
|
||||
$("text-input").focus();
|
||||
ok(isCaretVisible(), "Caret should be visible when input focused");
|
||||
window.addEventListener("popupshown", popupMenuShownHandler, false);
|
||||
$("menu").open = true;
|
||||
}
|
||||
|
||||
function popupMenuShownHandler() {
|
||||
window.removeEventListener("popupshown", popupMenuShownHandler, false);
|
||||
ok(!isCaretVisible(), "Caret shouldn't be visible when menu open");
|
||||
window.addEventListener("popuphidden", ensureParagraphFocused, false);
|
||||
$("menu").open = false;
|
||||
}
|
||||
|
||||
function ensureParagraphFocused() {
|
||||
window.removeEventListener("popuphidden", ensureParagraphFocused, false);
|
||||
ok(isCaretVisible(), "Caret should have returned to previous focus");
|
||||
window.addEventListener("popupshown", popupMenuShownHandler2, false);
|
||||
$("contextmenu").openPopup($('text-input'), "topleft" , -1 , -1 , true, true);
|
||||
}
|
||||
|
||||
function popupMenuShownHandler2() {
|
||||
window.removeEventListener("popupshown", popupMenuShownHandler2, false);
|
||||
ok(isCaretVisible(), "Caret should be visible when context menu open");
|
||||
window.addEventListener("popuphidden", ensureParagraphFocused2, false);
|
||||
document.getElementById("contextmenu").hidePopup();
|
||||
}
|
||||
|
||||
function ensureParagraphFocused2() {
|
||||
window.removeEventListener("popuphidden", ensureParagraphFocused2, false);
|
||||
ok(isCaretVisible(), "Caret should still be visible");
|
||||
window.addEventListener("popupshown", tooltipShownHandler, false);
|
||||
$("tooltip").openPopup($('text-input'), "topleft" , -1 , -1 , false, true);
|
||||
}
|
||||
|
||||
function tooltipShownHandler() {
|
||||
window.removeEventListener("popupshown", tooltipShownHandler, false);
|
||||
ok(isCaretVisible(), "Caret should be visible when tooltip is visible");
|
||||
window.addEventListener("popuphidden", ensureParagraphFocused3, false);
|
||||
document.getElementById("tooltip").hidePopup();
|
||||
}
|
||||
|
||||
function ensureParagraphFocused3() {
|
||||
window.removeEventListener("popuphidden", ensureParagraphFocused2, false);
|
||||
ok(isCaretVisible(), "Caret should still be visible");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
]]></script>
|
||||
</window>
|
||||
39
layout/base/tests/chrome/test_bug458898.html
Normal file
39
layout/base/tests/chrome/test_bug458898.html
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=458898
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 458898</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=458898">Mozilla Bug 458898</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
var win = window.openDialog("data:text/html,<div style='height:200px; width:100px;'>");
|
||||
|
||||
function loaded() {
|
||||
var disableWindowResizePref = "dom.disable_window_move_resize";
|
||||
SpecialPowers.pushPrefEnv({"set":[[disableWindowResizePref, false]]}, function() {
|
||||
win.sizeToContent();
|
||||
ok(win.innerWidth >= 100, "innerWidth: " + win.innerWidth + " >= 100 ?");
|
||||
ok(win.innerHeight >= 200, "innerHeight: " + win.innerHeight + " >= 200 ?");
|
||||
win.close();
|
||||
SimpleTest.finish();
|
||||
});
|
||||
}
|
||||
|
||||
win.addEventListener("load", loaded, false);
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
46
layout/base/tests/chrome/test_bug495648.xul
Normal file
46
layout/base/tests/chrome/test_bug495648.xul
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=495648
|
||||
-->
|
||||
<window title="Mozilla Bug 495648"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=495648"
|
||||
target="_blank">Mozilla Bug 495648</a>
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.expectAssertions(15, 24);
|
||||
|
||||
/** Test for Bug 495648 **/
|
||||
var uri = window.location.href.replace(/test_bug495648.xul/, "bug495648.rdf");
|
||||
|
||||
function doTest() {
|
||||
var list = document.getElementById('l');
|
||||
var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
var rdf = rdfService.GetDataSourceBlocking(uri);
|
||||
list.database.AddDataSource(rdf);
|
||||
list.builder.rebuild();
|
||||
is(list.itemCount, 40, "Unexpected item count");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(doTest);
|
||||
|
||||
]]>
|
||||
</script>
|
||||
<listbox flex="1" id="l" seltype="multiple" datasources="rdf:null" ref="urn:root" sortResource="http://home.netscape.com/NC-rdf#name" sortDirection="ascending">
|
||||
<template>
|
||||
<rule><conditions><content uri="?uri" /><triple subject="?uri" predicate="http://home.netscape.com/NC-rdf#links" object="?links" /><member container="?links" child="?child" /><triple subject="?child" predicate="http://home.netscape.com/NC-rdf#name" object="?name" /></conditions><bindings><binding subject="?child" predicate="http://sitedelta.schierla.de/SD-rdf#status" object="?status" /></bindings><action><listitem label="?name" class="listitem-iconic" status="?status" uri="?child" /></action></rule>
|
||||
</template>
|
||||
</listbox>
|
||||
</window>
|
||||
35
layout/base/tests/chrome/test_bug504311.xul
Normal file
35
layout/base/tests/chrome/test_bug504311.xul
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=504311
|
||||
-->
|
||||
<window title="Mozilla Bug 504311"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="doTest()">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=504311"
|
||||
target="_blank">Mozilla Bug 504311</a>
|
||||
</body>
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function doTest()
|
||||
{
|
||||
var tb = document.getElementById("tb01");
|
||||
var inputField = tb.inputField;
|
||||
var editor = inputField.QueryInterface(Components.interfaces.nsIDOMNSEditableElement).editor;
|
||||
editor = editor.QueryInterface(Components.interfaces.nsIPlaintextEditor);
|
||||
editor.wrapWidth = -1;
|
||||
|
||||
ok(true, "Didn't crash");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
]]></script>
|
||||
<textbox id="tb01" multiline="true"/>
|
||||
</window>
|
||||
40
layout/base/tests/chrome/test_bug514660.xul
Normal file
40
layout/base/tests/chrome/test_bug514660.xul
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=514660
|
||||
-->
|
||||
<window title="Mozilla Bug 504311"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="doTest()">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=514660"
|
||||
target="_blank">Mozilla Bug 514660</a>
|
||||
<textarea></textarea>
|
||||
</body>
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function doTest()
|
||||
{
|
||||
var viewer = window
|
||||
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebNavigation)
|
||||
.QueryInterface(Components.interfaces.nsIDocShell)
|
||||
.contentViewer;
|
||||
viewer.authorStyleDisabled = true;
|
||||
|
||||
document.documentElement.getBoundingClientRect();
|
||||
ok(true, "Didn't crash");
|
||||
|
||||
viewer.authorStyleDisabled = false;
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
]]></script>
|
||||
</window>
|
||||
44
layout/base/tests/chrome/test_bug533845.xul
Normal file
44
layout/base/tests/chrome/test_bug533845.xul
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=533845
|
||||
-->
|
||||
<window title="Mozilla Bug 533845"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="doTest()">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<panel id="panel" width="50" height="50" onpopupshown="continueTest()">
|
||||
<iframe type="content" id="contentFrame" src="data:text/html,<html><body onclick='document.body.textContent=1'>This is a panel!</body></html>" width="500" height="500"/>
|
||||
</panel>
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=533845"
|
||||
target="_blank">Mozilla Bug 533845</a>
|
||||
</body>
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function doTest() {
|
||||
document.getElementById('panel').showPopup();
|
||||
}
|
||||
|
||||
function continueTest() {
|
||||
var ifrwindow = document.getElementById("contentFrame").contentWindow;
|
||||
ifrwindow.focus();
|
||||
var utils = ifrwindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIDOMWindowUtils);
|
||||
var rect = ifrwindow.document.body.getBoundingClientRect();
|
||||
var x = rect.left + (rect.width/2);
|
||||
var y = rect.top + (rect.height/2);
|
||||
utils.sendMouseEvent("mousedown", x, y, 0, 1, 0);
|
||||
utils.sendMouseEvent("mouseup", x, y, 0, 1, 0);
|
||||
is(ifrwindow.document.body.textContent, "1", "Should have got a click event!");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
]]></script>
|
||||
</window>
|
||||
97
layout/base/tests/chrome/test_bug551434.html
Normal file
97
layout/base/tests/chrome/test_bug551434.html
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Test for Bug 551434</title>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
</div>
|
||||
<pre id="test">
|
||||
<input id="i1" onkeydown="gKeyDown1++; $('i2').focus();" onkeypress="gKeyPress1++;" onkeyup="gKeyUp1++;"/>
|
||||
<input id="i2" onkeydown="gKeyDown2++;" onkeypress="gKeyPress2++;" onkeyup="gKeyUp2++;"/>
|
||||
|
||||
<input id="i3" onkeydown="gKeyDown3++; frames[0].document.getElementById('i4').focus();"
|
||||
onkeypress="gKeyPress3++;" onkeyup="gKeyUp3++;"/>
|
||||
<iframe id="iframe" src="http://example.org/chrome/layout/base/tests/chrome/bug551434_childframe.html"></iframe>
|
||||
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var gKeyDown1 = 0, gKeyPress1 = 0, gKeyUp1 = 0;
|
||||
var gKeyDown2 = 0, gKeyPress2 = 0, gKeyUp2 = 0;
|
||||
var gKeyDown3 = 0, gKeyPress3 = 0, gKeyUp3 = 0;
|
||||
|
||||
function runTest()
|
||||
{
|
||||
$("i1").focus();
|
||||
|
||||
// key events should not be retargeted when the focus changes to an
|
||||
// element in the same document.
|
||||
synthesizeKey("a", { type: "keydown", code: "KeyA", keyCode: KeyboardEvent.DOM_VK_B });
|
||||
is(document.activeElement, $("i2"), "input 2 in focused");
|
||||
|
||||
synthesizeKey("a", { type: "keyup", code: "KeyA", keyCode: KeyboardEvent.DOM_VK_B });
|
||||
|
||||
is(gKeyDown1, 1, "keydown on input 1");
|
||||
is(gKeyPress1, 0, "keypress on input 1");
|
||||
is(gKeyUp1, 0, "keyup on input 1");
|
||||
is(gKeyDown2, 0, "keydown on input 2");
|
||||
is(gKeyPress2, 1, "keypress on input 2");
|
||||
is(gKeyUp2, 1, "keyup on input 2");
|
||||
|
||||
is($("i1").value, "", "input 1 value");
|
||||
is($("i2").value, "a", "input 2 value");
|
||||
|
||||
// key events should however be retargeted when the focus changes to an
|
||||
// element in the a content document from a chrome document.
|
||||
$("i3").focus();
|
||||
|
||||
var childWinObj = frames[0].wrappedJSObject;
|
||||
|
||||
synthesizeKey("b", { code: "KeyB", keyCode: KeyboardEvent.DOM_VK_B });
|
||||
is(gKeyDown3, 1, "keydown on input 3");
|
||||
is(gKeyPress3, 1, "keypress on input 3");
|
||||
is(gKeyUp3, 1, "keyup on input 3");
|
||||
is(childWinObj.gKeyDownChild, 0, "keydown on input 4");
|
||||
is(childWinObj.gKeyPressChild, 0, "keypress on input 4");
|
||||
is(childWinObj.gKeyUpChild, 0, "keyup on input 4");
|
||||
|
||||
var i4 = frames[0].document.getElementById("i4");
|
||||
is($("i3").value, "b", "input 3 value");
|
||||
is(i4.value, "", "input 4 value");
|
||||
|
||||
is(document.activeElement, $("iframe"), "parent focus");
|
||||
is(frames[0].document.activeElement, i4, "child focus");
|
||||
|
||||
// key events should also be retargeted when the focus changes to an
|
||||
// element in a chrome document from a content document.
|
||||
i4.addEventListener("keydown", () => $("i3").focus(), false);
|
||||
|
||||
synthesizeKey("c", { code: "KeyC", keyCode: KeyboardEvent.DOM_VK_C });
|
||||
|
||||
is(gKeyDown3, 1, "keydown on input 3");
|
||||
is(gKeyPress3, 1, "keypress on input 3");
|
||||
is(gKeyUp3, 1, "keyup on input 3");
|
||||
is(childWinObj.gKeyDownChild, 1, "keydown on input 4");
|
||||
is(childWinObj.gKeyPressChild, 1, "keypress on input 4");
|
||||
is(childWinObj.gKeyUpChild, 1, "keyup on input 4");
|
||||
|
||||
is($("i3").value, "b", "input 3 value");
|
||||
is(i4.value, "c", "input 4 value");
|
||||
|
||||
is(document.activeElement, $("i3"), "parent focus");
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForFocus(runTest);
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
47
layout/base/tests/chrome/test_bug708062.html
Normal file
47
layout/base/tests/chrome/test_bug708062.html
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=708062
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 708062</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body onload="doTest()">
|
||||
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=708062">Mozilla Bug 708062</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<iframe id="f" style="width:100px;"
|
||||
src="data:text/html,A<div id='d' style='position:fixed;width:170px;top:0;right:0;height:1px;background:yellow;'>"></iframe>
|
||||
<pre id="test">
|
||||
|
||||
<script>
|
||||
function isBoundingClientRect(e, r, msg) {
|
||||
var BCR = e.getBoundingClientRect();
|
||||
is([BCR.left, BCR.top, BCR.right, BCR.bottom].join(','), r, msg);
|
||||
}
|
||||
|
||||
function doTest() {
|
||||
var f = document.getElementById('f');
|
||||
|
||||
var navigator1 = f.contentWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation);
|
||||
var docShell = navigator1.QueryInterface(Components.interfaces.nsIDocShell);
|
||||
var docviewer = docShell.contentViewer;
|
||||
|
||||
var d = f.contentDocument.getElementById('d');
|
||||
|
||||
isBoundingClientRect(d, "-70,0,100,1", "initial rect");
|
||||
docviewer.fullZoom = 2;
|
||||
isBoundingClientRect(d, "-120,0,50,1", "after zooming in");
|
||||
docviewer.fullZoom = 1;
|
||||
isBoundingClientRect(d, "-70,0,100,1", "after zooming back out");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
38
layout/base/tests/chrome/test_bug812817.xul
Normal file
38
layout/base/tests/chrome/test_bug812817.xul
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=812817
|
||||
-->
|
||||
<window title="Mozilla Bug 812817"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="doTest()">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<panel id="panel" width="200" height="200" onpopupshown="continueTest()">
|
||||
</panel>
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=812817"
|
||||
target="_blank">Mozilla Bug 812817</a>
|
||||
</body>
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var panel = document.getElementById('panel');
|
||||
function doTest() {
|
||||
panel.openPopup(null, '', 500, 500, false, false, null);
|
||||
}
|
||||
|
||||
function continueTest() {
|
||||
panel.style.background = "url(blue-32x32.png)";
|
||||
setTimeout(function() {
|
||||
ok(true, "Didn't crash");
|
||||
SimpleTest.finish();
|
||||
}, 50);
|
||||
}
|
||||
|
||||
]]></script>
|
||||
</window>
|
||||
31
layout/base/tests/chrome/test_bug847890_paintFlashing.html
Normal file
31
layout/base/tests/chrome/test_bug847890_paintFlashing.html
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Tests for paint flashing</title>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/WindowSnapshot.js"></script>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/paint_listener.js"></script>
|
||||
|
||||
<script type="application/javascript">
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
function startTest() {
|
||||
waitForAllPaintsFlushed(function () {
|
||||
var before = snapshotWindow(window, false);
|
||||
SpecialPowers.getDOMWindowUtils(window).paintFlashing = true;
|
||||
document.body.innerHTML = "bar";
|
||||
waitForAllPaintsFlushed(function () {
|
||||
document.body.innerHTML = "foo";
|
||||
waitForAllPaintsFlushed(function () {
|
||||
var after = snapshotWindow(window, false);
|
||||
ok(compareSnapshots(before, after, false)[0], "windows are different");
|
||||
SpecialPowers.getDOMWindowUtils(window).paintFlashing = false;
|
||||
SimpleTest.finish();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="startTest()">foo</body>
|
||||
</html>
|
||||
26
layout/base/tests/chrome/test_chrome_content_integration.xul
Normal file
26
layout/base/tests/chrome/test_chrome_content_integration.xul
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/chrome-harness.js"></script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
// Run the test in a separate window so that the test runs as a chrome
|
||||
// window
|
||||
var root = getRootDirectory(window.location.href);
|
||||
window.open(root + "chrome_content_integration_window.xul", "chrome_content_integration",
|
||||
"chrome,width=200,height=300");
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
24
layout/base/tests/chrome/test_chrome_over_plugin.xul
Normal file
24
layout/base/tests/chrome/test_chrome_over_plugin.xul
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
// Run the test in a separate window so that the test runs as a chrome
|
||||
// window
|
||||
SpecialPowers.setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED);
|
||||
var w = window.open("chrome_over_plugin_window.xul", "chrome_over_plugin",
|
||||
"chrome,width=200,height=300");
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
23
layout/base/tests/chrome/test_default_background.xul
Normal file
23
layout/base/tests/chrome/test_default_background.xul
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
// Run the test in a separate window so that the test runs as a chrome
|
||||
// window
|
||||
window.open("default_background_window.xul", "default_background",
|
||||
"chrome,width=200,height=300");
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
20
layout/base/tests/chrome/test_dialog_with_positioning.html
Normal file
20
layout/base/tests/chrome/test_dialog_with_positioning.html
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test positioning of fixed-pos/abs-pos elements in a XUL dialog</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/chrome-harness.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var root = getRootDirectory(window.location.href);
|
||||
window.openDialog(root + "dialog_with_positioning_window.xul", "dialog_with_positioning",
|
||||
"dialog,chrome");
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test that we don't get unnecessary repaints with fixed backgrounds</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/paint_listener.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<!-- Need a timeout here to allow paint unsuppression before we start the test -->
|
||||
<body onload="setTimeout(startTest,0)" style="background:url(blue-32x32.png) top left no-repeat fixed; background-size: 100px 2000px; overflow:hidden;">
|
||||
<div style="height: 2048px"></div>
|
||||
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
|
||||
getInterface(Components.interfaces.nsIDOMWindowUtils);
|
||||
|
||||
function startTest() {
|
||||
// Do a scroll to ensure we trigger activity heuristics.
|
||||
document.documentElement.scrollTop = 1;
|
||||
waitForAllPaintsFlushed(function () {
|
||||
document.documentElement.scrollTop = 0;
|
||||
waitForAllPaintsFlushed(function () {
|
||||
// Clear paint state and scroll down
|
||||
utils.checkAndClearPaintedState(document.documentElement);
|
||||
document.documentElement.scrollTop = 100;
|
||||
waitForAllPaintsFlushed(function () {
|
||||
// Make sure nothing painted
|
||||
var painted = utils.checkAndClearPaintedState(document.documentElement);
|
||||
is(painted, false, "Fixed background should not have been painted when scrolled");
|
||||
SimpleTest.finish();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var winLowerThanVista = navigator.platform.indexOf("Win") == 0;
|
||||
if (winLowerThanVista) {
|
||||
var version = Components.classes["@mozilla.org/system-info;1"]
|
||||
.getService(Components.interfaces.nsIPropertyBag2)
|
||||
.getProperty("version");
|
||||
winLowerThanVista = parseFloat(version) < 6.0;
|
||||
}
|
||||
|
||||
var tests = [{maximize: false}, {maximize: true}];
|
||||
var testIndex = 0;
|
||||
var win;
|
||||
|
||||
function testInfo() {
|
||||
return tests[testIndex].maximize ? " (maximized)" : " (non-maximized)";
|
||||
}
|
||||
|
||||
function doTest(evt) {
|
||||
var initialCount = win.mozPaintCount;
|
||||
|
||||
function nextStep() {
|
||||
if (win.mozPaintCount == initialCount || win.isMozAfterPaintPending) {
|
||||
SimpleTest.info("Waiting for mozPaintCount (= " + initialCount + ") to increase" + testInfo());
|
||||
// Do not use SimpleTest.executeSoon() here: give a little more time.
|
||||
setTimeout(nextStep, 100);
|
||||
return;
|
||||
}
|
||||
|
||||
isnot(win.mozPaintCount, initialCount, "mozPaintCount has increased" + testInfo());
|
||||
|
||||
function testLeafLayersPartitionWindow() {
|
||||
var success = win.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIDOMWindowUtils)
|
||||
.leafLayersPartitionWindow();
|
||||
// "[leafLayersPartitionWindow()] Always returns true in non-DEBUG builds."
|
||||
// To prevent random failures on Windows, try to run this again after a timeout.
|
||||
if (!success && navigator.platform.indexOf("Win") >= 0) {
|
||||
setTimeout(testLeafLayersPartitionWindow, 100);
|
||||
return;
|
||||
}
|
||||
ok(success,
|
||||
"Leaf layers should form a non-overlapping partition of the browser window" + testInfo() +
|
||||
(success ? "" : ". [Set MOZ_DUMP_PAINT_LIST=1 env var to investigate.]"));
|
||||
|
||||
win.close();
|
||||
++testIndex;
|
||||
nextTest();
|
||||
}
|
||||
testLeafLayersPartitionWindow();
|
||||
}
|
||||
|
||||
if (tests[testIndex].maximize) {
|
||||
function resizeListener() {
|
||||
win.removeEventListener("resize", resizeListener, true);
|
||||
// We want a paint after resize.
|
||||
initialCount = win.mozPaintCount;
|
||||
SimpleTest.executeSoon(nextStep);
|
||||
}
|
||||
win.addEventListener("resize", resizeListener, true);
|
||||
SimpleTest.info("Maximizing test " + testIndex + " window" + testInfo());
|
||||
Components.classes["@mozilla.org/appshell/window-mediator;1"]
|
||||
.getService(Components.interfaces.nsIWindowMediator)
|
||||
.getMostRecentWindow("navigator:browser")
|
||||
.maximize();
|
||||
} else {
|
||||
SimpleTest.executeSoon(nextStep);
|
||||
}
|
||||
}
|
||||
|
||||
function nextTest() {
|
||||
if (testIndex >= tests.length) {
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
}
|
||||
|
||||
if (winLowerThanVista && !tests[testIndex].maximize) {
|
||||
ok(true, "Skipping non-maximized test " + testIndex + " on winLowerThanVista since the resizer causes overlapping layers");
|
||||
++testIndex;
|
||||
nextTest();
|
||||
return;
|
||||
}
|
||||
|
||||
window.focus();
|
||||
// Run the test in a separate window so we get a clean browser window.
|
||||
win = window.open("data:text/html,<html style='overflow:scroll'>",
|
||||
"", "scrollbars=yes,toolbar,menubar,width=500,height=500");
|
||||
setTimeout(setupWindow, 0);
|
||||
}
|
||||
|
||||
function setupWindow() {
|
||||
win.addEventListener("load", doTest, false);
|
||||
win.focus();
|
||||
}
|
||||
|
||||
nextTest();
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
23
layout/base/tests/chrome/test_no_clip_iframe.xul
Normal file
23
layout/base/tests/chrome/test_no_clip_iframe.xul
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
// Run the test in a separate window so that the test runs as a chrome
|
||||
// window
|
||||
window.open("no_clip_iframe_window.xul", "no_clip_iframe",
|
||||
"chrome,width=200,height=400");
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
47
layout/base/tests/chrome/test_prerendered_transforms.html
Normal file
47
layout/base/tests/chrome/test_prerendered_transforms.html
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test that active transformed elements coming into view are prerendered so we don't have to redraw constantly</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/paint_listener.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body onload="startTest()">
|
||||
<div>
|
||||
<div id="t" style="position:absolute; left:0; top:500px; -moz-transform: translatex(-100px); width:200px; height:100px; background:yellow;">
|
||||
<div style="text-align:right">Hello</div>
|
||||
<div style="text-align:left">Kitty</div>
|
||||
</div>
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var t = document.getElementById("t");
|
||||
var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
|
||||
getInterface(Components.interfaces.nsIDOMWindowUtils);
|
||||
|
||||
function startTest() {
|
||||
// Do a couple of transform changes to ensure we've triggered activity heuristics
|
||||
waitForAllPaintsFlushed(function () {
|
||||
t.style.MozTransform = "translatex(-75px)";
|
||||
waitForAllPaintsFlushed(function () {
|
||||
t.style.MozTransform = "translatex(-50px)";
|
||||
waitForAllPaintsFlushed(function () {
|
||||
// Clear paint state now and move again.
|
||||
utils.checkAndClearPaintedState(t);
|
||||
// Don't move to 0 since that might trigger some special case that turns off transforms.
|
||||
t.style.MozTransform = "translatex(-1px)";
|
||||
waitForAllPaintsFlushed(function () {
|
||||
var painted = utils.checkAndClearPaintedState(t);
|
||||
is(painted, false, "Transformed element should not have been painted");
|
||||
SimpleTest.finish();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
16
layout/base/tests/chrome/test_printpreview.xul
Normal file
16
layout/base/tests/chrome/test_printpreview.xul
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
</body>
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
window.open("printpreview_helper.xul", "printpreview", "chrome,width=100,height=100");
|
||||
]]></script>
|
||||
</window>
|
||||
22
layout/base/tests/chrome/test_printpreview_bug396024.xul
Normal file
22
layout/base/tests/chrome/test_printpreview_bug396024.xul
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=396024
|
||||
-->
|
||||
<window title="Mozilla Bug 369024"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=396024"
|
||||
target="_blank">Mozilla Bug 396024</a>
|
||||
</body>
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
window.open("printpreview_bug396024_helper.xul", "bug396024", "chrome,width=100,height=100");
|
||||
]]></script>
|
||||
</window>
|
||||
22
layout/base/tests/chrome/test_printpreview_bug482976.xul
Normal file
22
layout/base/tests/chrome/test_printpreview_bug482976.xul
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=482976
|
||||
-->
|
||||
<window title="Mozilla Bug 482976"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=482976"
|
||||
target="_blank">Mozilla Bug 482976</a>
|
||||
</body>
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
window.open("printpreview_bug482976_helper.xul", "bug482976", "chrome,width=100,height=100");
|
||||
]]></script>
|
||||
</window>
|
||||
49
layout/base/tests/chrome/test_scrolling_repaints.html
Normal file
49
layout/base/tests/chrome/test_scrolling_repaints.html
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test that we don't get unnecessary repaints due to subpixel shifts</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/paint_listener.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<!-- Need a timeout here to allow paint unsuppression before we start the test -->
|
||||
<body onload="setTimeout(startTest,0)">
|
||||
<div id="t" style="width:400px; height:100px; background:yellow; overflow:hidden">
|
||||
<div style="height:40px;"></div>
|
||||
<div id="e" style="height:30px; background:lime"></div>
|
||||
<div style="height:60.4px; background:pink"></div>
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var t = document.getElementById("t");
|
||||
var e = document.getElementById("e");
|
||||
var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
|
||||
getInterface(Components.interfaces.nsIDOMWindowUtils);
|
||||
|
||||
function startTest() {
|
||||
// Do a scroll to ensure we trigger activity heuristics.
|
||||
waitForAllPaintsFlushed(function () {
|
||||
t.scrollTop = 5;
|
||||
// Scroll down as far as we can, to put our rendering layer at a subpixel offset within the layer
|
||||
waitForAllPaintsFlushed(function () {
|
||||
t.scrollTop = 1000;
|
||||
waitForAllPaintsFlushed(function () {
|
||||
// Clear paint state now and scroll again.
|
||||
utils.checkAndClearPaintedState(e);
|
||||
// scroll up a little bit. This should not cause anything to be repainted.
|
||||
t.scrollTop = t.scrollTop - 10;
|
||||
waitForAllPaintsFlushed(function () {
|
||||
var painted = utils.checkAndClearPaintedState(e);
|
||||
is(painted, false, "Fully-visible scrolled element should not have been painted");
|
||||
SimpleTest.finish();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
99
layout/base/tests/chrome/test_will_change.html
Normal file
99
layout/base/tests/chrome/test_will_change.html
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Tests for MozAfterPaint</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/paint_listener.js"></script>
|
||||
<style>
|
||||
#checkOpacityRepaint {
|
||||
will-change: opacity;
|
||||
}
|
||||
#checkTransformRepaint {
|
||||
will-change: transform;
|
||||
}
|
||||
div {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: radial-gradient(ellipse at center, #87e0fd 0%,#53cbf1 40%,#05abe0 100%);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="checkRepaint">
|
||||
Check repaint without will-change
|
||||
</div>
|
||||
<div id="checkOpacityRepaint">
|
||||
Check repaint with will-change
|
||||
</div>
|
||||
<div id="checkTransformRepaint">
|
||||
Check repaint with will-change
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
|
||||
var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
|
||||
getInterface(Components.interfaces.nsIDOMWindowUtils);
|
||||
|
||||
var initialPaintCount = 0;
|
||||
|
||||
function test_checkRepaint(next) {
|
||||
var element = document.getElementById("checkRepaint");
|
||||
waitForAllPaintsFlushed(function () {
|
||||
utils.checkAndClearPaintedState(element);
|
||||
element.style.opacity = "0.5";
|
||||
waitForAllPaintsFlushed(function () {
|
||||
var painted = utils.checkAndClearPaintedState(element);
|
||||
// *** We check that this repaints because the test is relying
|
||||
// on this property. If this is broken then this test wont
|
||||
// be reliable check for will-change.
|
||||
is(painted, true, "element should have been painted");
|
||||
next();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function test_checkOpacityRepaint(next) {
|
||||
var element = document.getElementById("checkOpacityRepaint");
|
||||
waitForAllPaintsFlushed(function () {
|
||||
utils.checkAndClearPaintedState(element);
|
||||
element.style.opacity = "0.5";
|
||||
waitForAllPaintsFlushed(function () {
|
||||
var painted = utils.checkAndClearPaintedState(element);
|
||||
// BasicLayers' heuristics are so that even with will-change:opacity,
|
||||
// we can still have repaints.
|
||||
if (utils.layerManagerType != "Basic") {
|
||||
is(painted, false, "will-change checkOpacityRepaint element should not have been painted");
|
||||
}
|
||||
next();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function test_checkTransformRepaint(next) {
|
||||
var element = document.getElementById("checkTransformRepaint");
|
||||
waitForAllPaintsFlushed(function () {
|
||||
utils.checkAndClearPaintedState(element);
|
||||
element.style.transform = "translateY(-5px)";
|
||||
waitForAllPaintsFlushed(function () {
|
||||
var painted = utils.checkAndClearPaintedState(element);
|
||||
// BasicLayers' heuristics are so that even with will-change:transform,
|
||||
// we can still have repaints.
|
||||
if (utils.layerManagerType != "Basic") {
|
||||
is(painted, false, "will-change checkTransformRepaint element should not have been painted");
|
||||
}
|
||||
next();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
test_checkRepaint(function(){
|
||||
test_checkOpacityRepaint(function(){
|
||||
test_checkTransformRepaint(function(){
|
||||
SimpleTest.finish();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue