diff --git a/mozilla/layout/base/src/nsFrameUtil.cpp b/mozilla/layout/base/src/nsFrameUtil.cpp
index 695cd733d9c..f069a88ae80 100644
--- a/mozilla/layout/base/src/nsFrameUtil.cpp
+++ b/mozilla/layout/base/src/nsFrameUtil.cpp
@@ -538,7 +538,7 @@ PRBool
nsFrameUtil::CompareTrees(Node* tree1, Node* tree2)
{
PRBool result = PR_TRUE;
- for (;;) {
+ for (;; tree1 = tree1->next, tree2 = tree2->next) {
// Make sure both nodes are non-null, or at least agree with each other
if (nsnull == tree1) {
if (nsnull == tree2) {
@@ -561,14 +561,31 @@ nsFrameUtil::CompareTrees(Node* tree1, Node* tree2)
DumpNode(tree2, stdout, 1);
return PR_FALSE;
}
- if (tree1->state != tree2->state) {
+
+ // Ignore the XUL scrollbar frames
+ static const char kScrollbarFrame[] = "ScrollbarFrame";
+ if (0 == PL_strncmp(tree1->type, kScrollbarFrame, sizeof(kScrollbarFrame) - 1))
+ continue;
+
+ // We'll ignore these flags for the purposes of comparing frame state:
+ //
+ // NS_FRAME_EXTERNAL_REFERENCE
+ // because this is set by the event state manager or the
+ // caret code when a frame is focused. Depending on whether
+ // or not the regression tests are run as the focused window
+ // will make this value vary randomly.
+#define IRRELEVANT_FRAME_STATE_FLAGS NS_FRAME_EXTERNAL_REFERENCE
+
+#define FRAME_STATE_MASK (~(IRRELEVANT_FRAME_STATE_FLAGS))
+
+ if ((tree1->state & FRAME_STATE_MASK) != (tree2->state & FRAME_STATE_MASK)) {
printf("frame state mismatch: 0x%x vs. 0x%x\n",
tree1->state, tree2->state);
printf("Node 1:\n");
DumpNode(tree1, stdout, 1);
printf("Node 2:\n");
DumpNode(tree2, stdout, 1);
- //result = PR_FALSE; // we have a non-critical failure, so remember that but continue
+ result = PR_FALSE; // we have a non-critical failure, so remember that but continue
}
if (tree1->bbox != tree2->bbox) {
printf("frame bbox mismatch: %d,%d,%d,%d vs. %d,%d,%d,%d\n",
@@ -628,10 +645,6 @@ nsFrameUtil::CompareTrees(Node* tree1, Node* tree2)
list1 = list1->next;
list2 = list2->next;
}
-
- // Check siblings next
- tree1 = tree1->next;
- tree2 = tree2->next;
}
return result;
}
diff --git a/mozilla/layout/generic/nsFrameUtil.cpp b/mozilla/layout/generic/nsFrameUtil.cpp
index 695cd733d9c..f069a88ae80 100644
--- a/mozilla/layout/generic/nsFrameUtil.cpp
+++ b/mozilla/layout/generic/nsFrameUtil.cpp
@@ -538,7 +538,7 @@ PRBool
nsFrameUtil::CompareTrees(Node* tree1, Node* tree2)
{
PRBool result = PR_TRUE;
- for (;;) {
+ for (;; tree1 = tree1->next, tree2 = tree2->next) {
// Make sure both nodes are non-null, or at least agree with each other
if (nsnull == tree1) {
if (nsnull == tree2) {
@@ -561,14 +561,31 @@ nsFrameUtil::CompareTrees(Node* tree1, Node* tree2)
DumpNode(tree2, stdout, 1);
return PR_FALSE;
}
- if (tree1->state != tree2->state) {
+
+ // Ignore the XUL scrollbar frames
+ static const char kScrollbarFrame[] = "ScrollbarFrame";
+ if (0 == PL_strncmp(tree1->type, kScrollbarFrame, sizeof(kScrollbarFrame) - 1))
+ continue;
+
+ // We'll ignore these flags for the purposes of comparing frame state:
+ //
+ // NS_FRAME_EXTERNAL_REFERENCE
+ // because this is set by the event state manager or the
+ // caret code when a frame is focused. Depending on whether
+ // or not the regression tests are run as the focused window
+ // will make this value vary randomly.
+#define IRRELEVANT_FRAME_STATE_FLAGS NS_FRAME_EXTERNAL_REFERENCE
+
+#define FRAME_STATE_MASK (~(IRRELEVANT_FRAME_STATE_FLAGS))
+
+ if ((tree1->state & FRAME_STATE_MASK) != (tree2->state & FRAME_STATE_MASK)) {
printf("frame state mismatch: 0x%x vs. 0x%x\n",
tree1->state, tree2->state);
printf("Node 1:\n");
DumpNode(tree1, stdout, 1);
printf("Node 2:\n");
DumpNode(tree2, stdout, 1);
- //result = PR_FALSE; // we have a non-critical failure, so remember that but continue
+ result = PR_FALSE; // we have a non-critical failure, so remember that but continue
}
if (tree1->bbox != tree2->bbox) {
printf("frame bbox mismatch: %d,%d,%d,%d vs. %d,%d,%d,%d\n",
@@ -628,10 +645,6 @@ nsFrameUtil::CompareTrees(Node* tree1, Node* tree2)
list1 = list1->next;
list2 = list2->next;
}
-
- // Check siblings next
- tree1 = tree1->next;
- tree2 = tree2->next;
}
return result;
}
diff --git a/mozilla/layout/html/tests/block/bugs/rtest.bat b/mozilla/layout/html/tests/block/bugs/rtest.bat
index 50cfa3856d9..7b617b64f4d 100755
--- a/mozilla/layout/html/tests/block/bugs/rtest.bat
+++ b/mozilla/layout/html/tests/block/bugs/rtest.bat
@@ -5,13 +5,13 @@ if "%1"=="baseline" goto baseline
if not exist verify mkdir verify
s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\block\bugs\verify\ -rd s:\mozilla\layout\html\tests\block\bugs -f s:\mozilla\layout\html\tests\block\bugs\file_list.txt
REM some files require asynch loading, so they need a short delay to give good results
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 5 -o s:\mozilla\layout\html\tests\block\bugs\verify\ -rd s:\mozilla\layout\html\tests\block\bugs -f s:\mozilla\layout\html\tests\block\bugs\file_list_slow.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\block\bugs\verify\ -rd s:\mozilla\layout\html\tests\block\bugs -f s:\mozilla\layout\html\tests\block\bugs\file_list_slow.txt
goto done
:baseline
s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\block\bugs\ -f s:\mozilla\layout\html\tests\block\bugs\file_list.txt
REM some files require asynch loading, so they need a short delay to give good results
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 5 -o s:\mozilla\layout\html\tests\block\bugs\ -f s:\mozilla\layout\html\tests\block\bugs\file_list_slow.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\block\bugs\ -f s:\mozilla\layout\html\tests\block\bugs\file_list_slow.txt
goto done
:error
diff --git a/mozilla/layout/html/tests/block/rtest.bat b/mozilla/layout/html/tests/block/rtest.bat
index 2e6a21eb5a6..960bdf10708 100755
--- a/mozilla/layout/html/tests/block/rtest.bat
+++ b/mozilla/layout/html/tests/block/rtest.bat
@@ -1,5 +1,11 @@
@echo off
+rem Treat assertions as warnings so the tests don't choke waiting on a
+rem dialog box
+
+set XPCOM_DEBUG_BREAK_SAVE=%XPCOM_DEBUG_BREAK%
+set XPCOM_DEBUG_BREAK=warn
+
cd base
call rtest.bat %1
@@ -8,3 +14,5 @@ call rtest.bat %1
cd ..
+set XPCOM_DEBUG_BREAK=%XPCOM_DEBUG_BREAK_SAVE%
+
diff --git a/mozilla/layout/html/tests/block/rtest.sh b/mozilla/layout/html/tests/block/rtest.sh
index 2d235b4f931..4d4a93094e5 100755
--- a/mozilla/layout/html/tests/block/rtest.sh
+++ b/mozilla/layout/html/tests/block/rtest.sh
@@ -16,6 +16,10 @@ nodots() {
dirs="base bugs ../table/core ../table/viewer_tests ../table/bugs ../table/marvin ../table/other ../table/dom"
+# This doesn't appear to work on Linux right now; needs support for a
+# null driver, perhaps?
+#extra_dirs="../table/printing"
+
#extra_dirs="net/HTML_Chars net/W3C net/baron net/boxAcidTest net/glazman net/mozilla"
DEPTH="../../../../.."
diff --git a/mozilla/layout/html/tests/block/runtests.sh b/mozilla/layout/html/tests/block/runtests.sh
index 7dd13996a15..d890c985246 100755
--- a/mozilla/layout/html/tests/block/runtests.sh
+++ b/mozilla/layout/html/tests/block/runtests.sh
@@ -3,37 +3,88 @@
# create test file to use first; since we don't know where the tree
# is, and we need full pathnames in the file, we create it on the fly.
-testsfile=/tmp/$$-tests.txt
+case $1 in
+ baseline|verify)
+ MODE=$1
+ ;;
-cp /dev/null $testsfile
+ clean)
+ rm -r -f verify baseline
+ exit 0
+ ;;
+
+ *)
+ echo "Usage: $0 baseline|verify|clean"
+ exit 1
+ ;;
+esac
+
+run_tests() {
+ print_flags=
+
+ while [ $# -gt 0 ]; do
+ case $1 in
+ -m) shift
+ mode=$1
+ ;;
+
+ -p) print_flags="-Prt 1"
+ ;;
+
+ -f) shift
+ tests_file=$1
+ ;;
+
+ *) echo "unknown option $1 to run_tests()"
+ ;;
+ esac
+ shift
+ done
+
+ if [ -z "$tests_file" ]; then
+ echo "no tests file specified to run_tests()"
+ exit 1
+ fi
+
+ if [ "$mode" = "baseline" ]; then
+ rm -r -f baseline
+ nmkdir baseline
+ echo
+ echo $MOZ_TEST_VIEWER $print_flags -o baseline/ -f $tests_file
+ $MOZ_TEST_VIEWER $print_flags -o baseline/ -f $tests_file
+ elif [ "$mode" = "verify" ]; then
+ rm -r -f verify
+ mkdir verify
+ echo
+ echo $MOZ_TEST_VIEWER $print_flags -o baseline/ -f $tests_file
+ $MOZ_TEST_VIEWER $print_flags -o verify/ -rd baseline/ -f $tests_file
+ else
+ echo "no mode specified to run_tests()"
+ exit 1
+ fi
+}
+
+TESTS_FILE=/tmp/$$-tests.txt
+
+cp /dev/null $TESTS_FILE
for FILE in `ls file_list.txt file_list[0-9].txt 2> /dev/null`; do
egrep -v "^#" < $FILE \
| sed -e "s@file:///s\(:\||\)@file://$MOZ_TEST_BASE@" \
- >> $testsfile
+ >> $TESTS_FILE
done
-if [ \! -s $testfile ]; then
- echo "WARNING: No file lists found in `pwd`"
- rm -f $testsfile
- return 0
+if [ -s $TESTS_FILE ]; then
+ run_tests -m $MODE -f $TESTS_FILE
fi
-if test "$1"x = "baselinex"; then
- rm -r -f baseline
- mkdir baseline
- echo
- echo $MOZ_TEST_VIEWER -o baseline/ -f $testsfile
- $MOZ_TEST_VIEWER -o baseline/ -f $testsfile
-elif test "$1"x = "verifyx"; then
- rm -r -f verify
- mkdir verify
- echo
- echo $MOZ_TEST_VIEWER -o baseline/ -f $testsfile
- $MOZ_TEST_VIEWER -o verify/ -rd baseline/ -f $testsfile
-elif test "$1"x = "cleanx"; then
- rm -r -f verify baseline
-else
- echo "Usage: $0 baseline|verify|clean"
+if [ -f file_list_printing.txt ]; then
+ egrep -v "^#" < file_list_printing.txt \
+ | sed -e "s@file:///s\(:\||\)@file://$MOZ_TEST_BASE@" \
+ > $TESTS_FILE
+
+ if [ -s $TESTS_FILE ]; then
+ run_tests -p -m $MODE -f $TESTS_FILE
+ fi
fi
-rm -f $testsfile
+
diff --git a/mozilla/layout/html/tests/table/bugs/bug11026.html b/mozilla/layout/html/tests/table/bugs/bug11026.html
index 1272606e851..830c5e73a29 100644
--- a/mozilla/layout/html/tests/table/bugs/bug11026.html
+++ b/mozilla/layout/html/tests/table/bugs/bug11026.html
@@ -6,7 +6,7 @@ The bug showed horizontal scroll bars when resized
diff --git a/mozilla/layout/html/tests/table/bugs/rtest.bat b/mozilla/layout/html/tests/table/bugs/rtest.bat
index c2ed968b6d0..53f037b3084 100755
--- a/mozilla/layout/html/tests/table/bugs/rtest.bat
+++ b/mozilla/layout/html/tests/table/bugs/rtest.bat
@@ -11,23 +11,23 @@ if %1==baseline goto baseline
:verify
if not exist verify mkdir verify
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list1.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list2.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list3.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list4.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list5.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list6.txt
-REM s:\mozilla\dist\win32_d.obj\bin\viewer -Prt 1 -d 5 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list_printing.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list1.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list2.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list3.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list4.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list5.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list6.txt
+REM s:\mozilla\dist\win32_d.obj\bin\viewer -Prt 1 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list_printing.txt
goto done
:baseline
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list1.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list2.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list3.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list4.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list5.txt
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list6.txt
-REM s:\mozilla\dist\win32_d.obj\bin\viewer -Prt 1 -d 5 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list_printing.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list1.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list2.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list3.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list4.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list5.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\bugs\ -f s:\mozilla\layout\html\tests\table\bugs\file_list6.txt
+REM s:\mozilla\dist\win32_d.obj\bin\viewer -Prt 1 -o s:\mozilla\layout\html\tests\table\bugs\verify\ -rd s:\mozilla\layout\html\tests\table\bugs -f s:\mozilla\layout\html\tests\table\bugs\file_list_printing.txt
goto done
:error
diff --git a/mozilla/layout/html/tests/table/core/rtest.bat b/mozilla/layout/html/tests/table/core/rtest.bat
index 30696dca293..afa2d658bdf 100755
--- a/mozilla/layout/html/tests/table/core/rtest.bat
+++ b/mozilla/layout/html/tests/table/core/rtest.bat
@@ -3,12 +3,12 @@ if %1==baseline goto baseline
:verify
if not exist verify mkdir verify
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\core\verify\ -rd s:\mozilla\layout\html\tests\table\core -f s:\mozilla\layout\html\tests\table\core\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\core\verify\ -rd s:\mozilla\layout\html\tests\table\core -f s:\mozilla\layout\html\tests\table\core\file_list.txt
goto done
:baseline
delay=1
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\core\ -f s:\mozilla\layout\html\tests\table\core\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\core\ -f s:\mozilla\layout\html\tests\table\core\file_list.txt
goto done
:error
diff --git a/mozilla/layout/html/tests/table/dom/rtest.bat b/mozilla/layout/html/tests/table/dom/rtest.bat
index b60ea3c7e35..0a24a7730f7 100755
--- a/mozilla/layout/html/tests/table/dom/rtest.bat
+++ b/mozilla/layout/html/tests/table/dom/rtest.bat
@@ -3,11 +3,11 @@ if %1==baseline goto baseline
:verify
if not exist verify mkdir verify
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\dom\verify\ -rd s:\mozilla\layout\html\tests\table\dom -f s:\mozilla\layout\html\tests\table\dom\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\dom\verify\ -rd s:\mozilla\layout\html\tests\table\dom -f s:\mozilla\layout\html\tests\table\dom\file_list.txt
goto done
:baseline
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\dom\ -f s:\mozilla\layout\html\tests\table\dom\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\dom\ -f s:\mozilla\layout\html\tests\table\dom\file_list.txt
goto done
:error
diff --git a/mozilla/layout/html/tests/table/marvin/rtest.bat b/mozilla/layout/html/tests/table/marvin/rtest.bat
index 1b49815ab84..f1afea824c8 100755
--- a/mozilla/layout/html/tests/table/marvin/rtest.bat
+++ b/mozilla/layout/html/tests/table/marvin/rtest.bat
@@ -3,11 +3,11 @@ if %1==baseline goto baseline
:verify
if not exist verify mkdir verify
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\marvin\verify\ -rd s:\mozilla\layout\html\tests\table\marvin -f s:\mozilla\layout\html\tests\table\marvin\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\marvin\verify\ -rd s:\mozilla\layout\html\tests\table\marvin -f s:\mozilla\layout\html\tests\table\marvin\file_list.txt
goto done
:baseline
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\marvin\ -f s:\mozilla\layout\html\tests\table\marvin\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\marvin\ -f s:\mozilla\layout\html\tests\table\marvin\file_list.txt
goto done
:error
diff --git a/mozilla/layout/html/tests/table/other/rtest.bat b/mozilla/layout/html/tests/table/other/rtest.bat
index 9e68d09a4fb..83826cfcccb 100755
--- a/mozilla/layout/html/tests/table/other/rtest.bat
+++ b/mozilla/layout/html/tests/table/other/rtest.bat
@@ -3,11 +3,11 @@ if %1==baseline goto baseline
:verify
if not exist verify mkdir verify
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\other\verify\ -rd s:\mozilla\layout\html\tests\table\other -f s:\mozilla\layout\html\tests\table\other\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\other\verify\ -rd s:\mozilla\layout\html\tests\table\other -f s:\mozilla\layout\html\tests\table\other\file_list.txt
goto done
:baseline
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\other\ -f s:\mozilla\layout\html\tests\table\other\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\other\ -f s:\mozilla\layout\html\tests\table\other\file_list.txt
goto done
:error
diff --git a/mozilla/layout/html/tests/table/printing/rtest.bat b/mozilla/layout/html/tests/table/printing/rtest.bat
index 8ba81dc6df5..758529451af 100755
--- a/mozilla/layout/html/tests/table/printing/rtest.bat
+++ b/mozilla/layout/html/tests/table/printing/rtest.bat
@@ -11,11 +11,11 @@ if %1==baseline goto baseline
:verify
if not exist verify mkdir verify
-s:\mozilla\dist\win32_d.obj\bin\viewer -Prt 1 -d 5 -o s:\mozilla\layout\html\tests\table\printing\verify\ -rd s:\mozilla\layout\html\tests\table\printing -f s:\mozilla\layout\html\tests\table\printing\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -Prt 1 -o s:\mozilla\layout\html\tests\table\printing\verify\ -rd s:\mozilla\layout\html\tests\table\printing -f s:\mozilla\layout\html\tests\table\printing\file_list_printing.txt
goto done
:baseline
-s:\mozilla\dist\win32_d.obj\bin\viewer -Prt 1 -d 5 -o s:\mozilla\layout\html\tests\table\printing\ -rd s:\mozilla\layout\html\tests\table\printing -f s:\mozilla\layout\html\tests\table\printing\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -Prt 1 -o s:\mozilla\layout\html\tests\table\printing\ -rd s:\mozilla\layout\html\tests\table\printing -f s:\mozilla\layout\html\tests\table\printing\file_list_printing.txt
goto done
:error
diff --git a/mozilla/layout/html/tests/table/rtest.bat b/mozilla/layout/html/tests/table/rtest.bat
index 75b841acdbd..9e269dcb969 100755
--- a/mozilla/layout/html/tests/table/rtest.bat
+++ b/mozilla/layout/html/tests/table/rtest.bat
@@ -1,5 +1,11 @@
@echo off
+rem Treat assertions as warnings so the tests don't choke waiting on a
+rem dialog box
+
+set XPCOM_DEBUG_BREAK_SAVE=%XPCOM_DEBUG_BREAK%
+set XPCOM_DEBUG_BREAK=warn
+
cd core
call rtest.bat %1
@@ -23,3 +29,4 @@ call rtest.bat %1
cd ..
+set XPCOM_DEBUG_BREAK=%XPCOM_DEBUG_BREAK_SAVE%
diff --git a/mozilla/layout/html/tests/table/viewer_tests/rtest.bat b/mozilla/layout/html/tests/table/viewer_tests/rtest.bat
index 2a8108f1f1b..60da1d910f1 100755
--- a/mozilla/layout/html/tests/table/viewer_tests/rtest.bat
+++ b/mozilla/layout/html/tests/table/viewer_tests/rtest.bat
@@ -3,11 +3,11 @@ if %1==baseline goto baseline
:verify
if not exist verify mkdir verify
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\viewer_tests\verify\ -rd s:\mozilla\layout\html\tests\table\viewer_tests -f s:\mozilla\layout\html\tests\table\viewer_tests\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\viewer_tests\verify\ -rd s:\mozilla\layout\html\tests\table\viewer_tests -f s:\mozilla\layout\html\tests\table\viewer_tests\file_list.txt
goto done
:baseline
-s:\mozilla\dist\win32_d.obj\bin\viewer -d 1 -o s:\mozilla\layout\html\tests\table\viewer_tests\ -f s:\mozilla\layout\html\tests\table\viewer_tests\file_list.txt
+s:\mozilla\dist\win32_d.obj\bin\viewer -o s:\mozilla\layout\html\tests\table\viewer_tests\ -f s:\mozilla\layout\html\tests\table\viewer_tests\file_list.txt
goto done
:error
diff --git a/mozilla/webshell/tests/viewer/nsViewerApp.cpp b/mozilla/webshell/tests/viewer/nsViewerApp.cpp
index a0716b70f14..49440760a9c 100644
--- a/mozilla/webshell/tests/viewer/nsViewerApp.cpp
+++ b/mozilla/webshell/tests/viewer/nsViewerApp.cpp
@@ -378,14 +378,6 @@ nsViewerApp::Exit()
mAppShell->Exit();
NS_RELEASE(mAppShell);
}
- if (mEventQService) {
- printf("Going to destroy the event queue\n");
- rv = mEventQService->DestroyThreadEventQueue();
- if (nsnull != mEventQService) {
- nsServiceManager::ReleaseService(kEventQueueServiceCID, mEventQService);
- mEventQService = nsnull;
- }
- }
// Unregister the test form processor registered in nsViewerApp::SetupRegistry
rv = nsServiceManager::UnregisterService(kFormProcessorCID);
@@ -541,16 +533,6 @@ nsViewerApp::ProcessArguments(int argc, char** argv)
}
mCrawler->SetOutputDir(NS_ConvertASCIItoUCS2(argv[i]));
}
- else if (PL_strcmp(argv[i], "-d") == 0) {
- int delay;
- i++;
- if (i>=argc || 1!=sscanf(argv[i], "%d", &delay))
- {
- PrintHelpInfo(argv);
- exit(-1);
- }
- mCrawler->SetDelay(delay);
- }
else if (PL_strcmp(argv[i], "-w") == 0) {
int width;
i++;
diff --git a/mozilla/webshell/tests/viewer/nsWebCrawler.cpp b/mozilla/webshell/tests/viewer/nsWebCrawler.cpp
index 546f6a9a021..688807db26c 100644
--- a/mozilla/webshell/tests/viewer/nsWebCrawler.cpp
+++ b/mozilla/webshell/tests/viewer/nsWebCrawler.cpp
@@ -165,18 +165,6 @@ AtomHashTable::Remove(nsIAtom* aKey)
}
//----------------------------------------------------------------------
-PRInt32
-GetDelay(nsString& aURL)
-{
- PRInt32 delay = -1;
- if (aURL.Find("delay:=") >= 0) {
- char buf[128];
- PRInt32 offset = aURL.Find("=") + 1;
- aURL.ToCString(&buf[0], 128, offset);
- sscanf(&buf[0], "%d", &delay);
- }
- return delay;
-}
nsWebCrawler::nsWebCrawler(nsViewerApp* aViewer)
: mHaveURLList(PR_FALSE),
@@ -189,8 +177,7 @@ nsWebCrawler::nsWebCrawler(nsViewerApp* aViewer)
mCrawl = PR_FALSE;
mJiggleLayout = PR_FALSE;
mPostExit = PR_FALSE;
- mDelay = 0;
- mLastDelay = 0;
+ mDelay = 200 /*msec*/; // XXXwaterson straigt outta my arse
mMaxPages = -1;
mRecord = nsnull;
mLinkTag = getter_AddRefs(NS_NewAtom("a"));
@@ -206,7 +193,6 @@ nsWebCrawler::nsWebCrawler(nsViewerApp* aViewer)
mPrinterTestType = 0;
mRegressionOutputLevel = 0; // full output
mIncludeStyleInfo = PR_TRUE;
- mLastWebShell = nsnull;
}
static void FreeStrings(nsVoidArray& aArray)
@@ -223,7 +209,6 @@ nsWebCrawler::~nsWebCrawler()
{
FreeStrings(mSafeDomains);
FreeStrings(mAvoidDomains);
- NS_IF_RELEASE(mLastWebShell);
NS_IF_RELEASE(mBrowser);
delete mVisited;
}
@@ -233,23 +218,27 @@ NS_IMPL_ISUPPORTS2(nsWebCrawler,
nsISupportsWeakReference)
void
-nsWebCrawler::DumpRegressionData(nsIWebShell* aWebShell,
- nsIURI* aURL)
+nsWebCrawler::DumpRegressionData()
{
#ifdef NS_DEBUG
+ nsCOMPtr webshell;
+ mBrowser->GetWebShell(*getter_AddRefs(webshell));
+ if (! webshell)
+ return;
+
if (mOutputDir.Length() > 0) {
- nsIPresShell* shell = GetPresShell(aWebShell);
+ nsIPresShell* shell = GetPresShell(webshell);
if (!shell) return;
if ( mPrinterTestType > 0 ) {
nsCOMPtr viewer;
- nsCOMPtr docShell(do_QueryInterface(aWebShell));
+ nsCOMPtr docShell(do_QueryInterface(webshell));
docShell->GetContentViewer(getter_AddRefs(viewer));
if (viewer){
nsCOMPtr viewerFile = do_QueryInterface(viewer);
if (viewerFile) {
nsAutoString regressionFileName;
- FILE *fp = GetOutputFile(aURL, regressionFileName);
+ FILE *fp = GetOutputFile(mLastURL, regressionFileName);
switch (mPrinterTestType) {
case 1:
@@ -280,7 +269,7 @@ nsWebCrawler::DumpRegressionData(nsIWebShell* aWebShell,
if (mOutputDir.Length() > 0) {
nsAutoString regressionFileName;
- FILE *fp = GetOutputFile(aURL, regressionFileName);
+ FILE *fp = GetOutputFile(mLastURL, regressionFileName);
if (fp) {
nsIFrameDebug* fdbg;
if (NS_SUCCEEDED(root->QueryInterface(NS_GET_IID(nsIFrameDebug), (void**) &fdbg))) {
@@ -297,7 +286,7 @@ nsWebCrawler::DumpRegressionData(nsIWebShell* aWebShell,
}
else {
char* file;
- (void)aURL->GetPath(&file);
+ (void)mLastURL->GetPath(&file);
printf("could not open output file for %s\n", file);
nsCRT::free(file);
}
@@ -315,169 +304,166 @@ nsWebCrawler::DumpRegressionData(nsIWebShell* aWebShell,
#endif
}
+void
+nsWebCrawler::LoadNextURLCallback(nsITimer *aTimer, void *aClosure)
+{
+ nsWebCrawler* self = (nsWebCrawler*) aClosure;
+ self->DumpRegressionData();
+ self->LoadNextURL(PR_FALSE);
+}
+
+void
+nsWebCrawler::QueueExitCallback(nsITimer *aTimer, void *aClosure)
+{
+ nsWebCrawler* self = (nsWebCrawler*) aClosure;
+ self->DumpRegressionData();
+ self->QueueExit();
+}
// nsIWebProgressListener implementation
NS_IMETHODIMP
nsWebCrawler::OnStateChange(nsIWebProgress* aWebProgress,
- nsIRequest *aRequest,
- PRInt32 progressStateFlags,
- nsresult aStatus) {
- if (progressStateFlags & nsIWebProgressListener::STATE_IS_DOCUMENT) {
- if (progressStateFlags & nsIWebProgressListener::STATE_START) {
- if (mDelay > 0) {
- if (mLastWebShell && mLastURL) {
- DumpRegressionData(mLastWebShell, mLastURL);
- }
- }
- NS_IF_RELEASE(mLastWebShell);
- mBrowser->GetWebShell(mLastWebShell);
+ nsIRequest* aRequest,
+ PRInt32 progressStateFlags,
+ nsresult aStatus)
+{
+ // Make sure that we're being notified for _our_ shell, and not some
+ // subshell that's been created e.g. for an IFRAME.
+ nsCOMPtr shell;
+ mBrowser->GetWebShell(*getter_AddRefs(shell));
+ nsCOMPtr docShell = do_QueryInterface(shell);
+ if (docShell) {
+ nsCOMPtr progress = do_GetInterface(docShell);
+ if (aWebProgress != progress)
+ return NS_OK;
+ }
- nsCOMPtr channel(do_QueryInterface(aRequest));
- if (!channel) {
- NS_ASSERTION(channel, "no channel avail");
- return NS_ERROR_FAILURE;
- }
-
- nsCOMPtr uri;
- (void) channel->GetURI(getter_AddRefs(uri));
- mLastURL = uri;
- }
-
- if (progressStateFlags & nsIWebProgressListener::STATE_STOP) {
- nsresult rv;
- PRTime endLoadTime = PR_Now();
-
- nsCOMPtr uri;
- nsCOMPtr channel = do_QueryInterface(aRequest);
- rv = channel->GetURI(getter_AddRefs(uri));
- if (NS_FAILED(rv)) {
- return rv;
- }
-
- // Ignore this notification unless its for the current url. That way
- // we skip over embedded webshell notifications (e.g. frame cells,
- // iframes, etc.)
- char* spec;
- uri->GetSpec(&spec);
- if (!spec) {
- nsCRT::free(spec);
- return NS_ERROR_OUT_OF_MEMORY;
- }
- nsCOMPtr currentURL;
- rv = NS_NewURI(getter_AddRefs(currentURL), mCurrentURL);
- if (NS_FAILED(rv)) {
- nsCRT::free(spec);
- return rv;
- }
- char* spec2;
- currentURL->GetSpec(&spec2);
- if (!spec2) {
- nsCRT::free(spec);
- return NS_ERROR_OUT_OF_MEMORY;
- }
- if (PL_strcmp(spec, spec2)) {
- nsCRT::free(spec);
- nsCRT::free(spec2);
- return NS_OK;
- }
- nsCRT::free(spec2);
-
- char buf[400];
- PRTime delta, cvt, rounder;
- LL_I2L(cvt, 1000);
- LL_I2L(rounder, 499);
- LL_SUB(delta, endLoadTime, mStartLoad);
- LL_ADD(delta, delta, rounder);
- LL_DIV(delta, delta, cvt);
- PR_snprintf(buf, sizeof(buf), "%s: done loading (%lld msec)",
- spec, delta);
- printf("%s\n", buf);
- nsCRT::free(spec);
-
- // Make sure the document bits make it to the screen at least once
- nsIPresShell* shell = GetPresShell();
- if (nsnull != shell) {
- nsCOMPtr vm;
- shell->GetViewManager(getter_AddRefs(vm));
- if (vm) {
- nsIView* rootView;
- vm->GetRootView(rootView);
- vm->UpdateView(rootView, NS_VMREFRESH_IMMEDIATE);
- }
- if (0 == mDelay) {
- nsIWebShell* webShell;
- mBrowser->GetWebShell(webShell);
- if (webShell) {
- DumpRegressionData(webShell, uri);
- NS_RELEASE(webShell);
- }
- }
- if (mJiggleLayout) {
- nsRect r;
- mBrowser->GetContentBounds(r);
- nscoord oldWidth = r.width;
- while (r.width > 100) {
- r.width -= 10;
- mBrowser->SizeWindowTo(r.width, r.height, PR_FALSE, PR_FALSE);
- }
- while (r.width < oldWidth) {
- r.width += 10;
- mBrowser->SizeWindowTo(r.width, r.height, PR_FALSE, PR_FALSE);
- }
- }
-
- if (mCrawl) {
- FindMoreURLs();
- }
-
- if (0 == mDelay) {
- LoadNextURL(PR_TRUE);
- }
- NS_RELEASE(shell);
- }
- else {
- fputs("null pres shell\n", stdout);
- }
-
- if (mPostExit && (0 == mQueuedLoadURLs) && (0==mPendingURLs.Count())) {
- QueueExit();
- }
- }
- }
+ // Make sure that we're being notified for the whole document, not a
+ // sub-load.
+ if (! (progressStateFlags & nsIWebProgressListener::STATE_IS_DOCUMENT))
return NS_OK;
+
+ if (progressStateFlags & nsIWebProgressListener::STATE_START) {
+ // If the document load is starting, remember its URL as the last
+ // URL we've loaded.
+ nsCOMPtr channel(do_QueryInterface(aRequest));
+ if (! channel) {
+ NS_ERROR("no channel avail");
+ return NS_ERROR_FAILURE;
+ }
+
+ nsCOMPtr uri;
+ channel->GetURI(getter_AddRefs(uri));
+
+ mLastURL = uri;
+ }
+ //XXXwaterson are these really _not_ mutually exclusive?
+ // else
+ if ((progressStateFlags & nsIWebProgressListener::STATE_STOP) && (aStatus == NS_OK)) {
+ // If the document load is finishing, then wrap up and maybe load
+ // some more URLs.
+ nsresult rv;
+ PRTime endLoadTime = PR_Now();
+
+ nsCOMPtr uri;
+ nsCOMPtr channel = do_QueryInterface(aRequest);
+ rv = channel->GetURI(getter_AddRefs(uri));
+ if (NS_FAILED(rv)) return rv;
+
+ // Ignore this notification unless its for the current url. That way
+ // we skip over embedded webshell notifications (e.g. frame cells,
+ // iframes, etc.)
+ nsXPIDLCString spec;
+ uri->GetSpec(getter_Copies(spec));
+
+ PRTime delta, cvt, rounder;
+ LL_I2L(cvt, 1000);
+ LL_I2L(rounder, 499);
+ LL_SUB(delta, endLoadTime, mStartLoad);
+ LL_ADD(delta, delta, rounder);
+ LL_DIV(delta, delta, cvt);
+ printf("+++ %s: done loading (%lld msec)\n", spec.get(), delta);
+
+ // Make sure the document bits make it to the screen at least once
+ nsCOMPtr shell = dont_AddRef(GetPresShell());
+ if (shell) {
+ // Force the presentation shell to flush any pending reflows
+ shell->FlushPendingNotifications();
+
+ // Force the view manager to update itself
+ nsCOMPtr vm;
+ shell->GetViewManager(getter_AddRefs(vm));
+ if (vm) {
+ nsIView* rootView;
+ vm->GetRootView(rootView);
+ vm->UpdateView(rootView, NS_VMREFRESH_IMMEDIATE);
+ }
+
+ if (mJiggleLayout) {
+ nsRect r;
+ mBrowser->GetContentBounds(r);
+ nscoord oldWidth = r.width;
+ while (r.width > 100) {
+ r.width -= 10;
+ mBrowser->SizeWindowTo(r.width, r.height, PR_FALSE, PR_FALSE);
+ }
+ while (r.width < oldWidth) {
+ r.width += 10;
+ mBrowser->SizeWindowTo(r.width, r.height, PR_FALSE, PR_FALSE);
+ }
+ }
+ }
+
+ if (mCrawl) {
+ FindMoreURLs();
+ }
+
+ mTimer = do_CreateInstance("@mozilla.org/timer;1");
+ if ((0 < mQueuedLoadURLs) || (0 < mPendingURLs.Count())) {
+ mTimer->Init(LoadNextURLCallback, this, mDelay);
+ }
+ else if (mPostExit) {
+ mTimer->Init(QueueExitCallback, this, mDelay);
+ }
+ }
+
+ return NS_OK;
}
NS_IMETHODIMP
nsWebCrawler::OnProgressChange(nsIWebProgress *aWebProgress,
- nsIRequest *aRequest,
- PRInt32 aCurSelfProgress,
- PRInt32 aMaxSelfProgress,
- PRInt32 aCurTotalProgress,
- PRInt32 aMaxTotalProgress) {
+ nsIRequest *aRequest,
+ PRInt32 aCurSelfProgress,
+ PRInt32 aMaxSelfProgress,
+ PRInt32 aCurTotalProgress,
+ PRInt32 aMaxTotalProgress) {
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
nsWebCrawler::OnLocationChange(nsIWebProgress* aWebProgress,
- nsIRequest* aRequest,
- nsIURI *location) {
+ nsIRequest* aRequest,
+ nsIURI *location)
+{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
nsWebCrawler::OnStatusChange(nsIWebProgress* aWebProgress,
- nsIRequest* aRequest,
- nsresult aStatus,
- const PRUnichar* aMessage) {
+ nsIRequest* aRequest,
+ nsresult aStatus,
+ const PRUnichar* aMessage)
+{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
nsWebCrawler::OnSecurityChange(nsIWebProgress *aWebProgress,
- nsIRequest *aRequest,
- PRInt32 state) {
+ nsIRequest *aRequest,
+ PRInt32 state)
+{
return NS_ERROR_NOT_IMPLEMENTED;
}
@@ -540,14 +526,6 @@ nsWebCrawler::AddURL(const nsString& aURL)
{
nsString* url = new nsString(aURL);
mPendingURLs.AppendElement(url);
- if (1 == mPendingURLs.Count()) {
- mLastDelay = mDelay;
- }
- PRInt32 delay = GetDelay(*url);
- if (delay >= 0) {
- SetDelay(delay);
- mLastDelay = delay;
- }
if (mVerbose) {
printf("WebCrawler: adding '");
fputs(aURL, stdout);
@@ -585,28 +563,16 @@ void
nsWebCrawler::Start()
{
// Enable observing each URL load...
- nsIWebShell *shell = nsnull;
- mBrowser->GetWebShell(shell);
+ nsCOMPtr shell;
+ mBrowser->GetWebShell(*getter_AddRefs(shell));
nsCOMPtr docShell(do_QueryInterface(shell));
- NS_RELEASE(shell);
- nsCOMPtr progress(do_GetInterface(docShell));
- if (!progress) return;
-
- (void) progress->AddProgressListener((nsIWebProgressListener*)this);
-
- if (mPendingURLs.Count() >= 1) {
- mHaveURLList = PR_TRUE;
- // duplicate the last url if there is a delay since the regression data for the
- // url gets written when the next url is encountered. Not perfect, but simple.
- if (mLastDelay != 0) {
- nsString* last = (nsString *) mPendingURLs.ElementAt(mPendingURLs.Count() - 1);
- if (last) {
- nsString* dupLast = new nsString(*last);
- mPendingURLs.AppendElement(dupLast);
- }
+ if (docShell) {
+ nsCOMPtr progress(do_GetInterface(docShell));
+ if (progress) {
+ progress->AddProgressListener(this);
+ LoadNextURL(PR_FALSE);
}
}
- LoadNextURL(PR_FALSE);
}
void
@@ -807,32 +773,27 @@ nsWebCrawler::FindURLsIn(nsIDocument* aDocument, nsIContent* aNode)
void
nsWebCrawler::FindMoreURLs()
{
- nsIWebShell* shell = nsnull;
- mBrowser->GetWebShell(shell);
+ nsCOMPtr shell;
+ mBrowser->GetWebShell(*getter_AddRefs(shell));
+
nsCOMPtr docShell(do_QueryInterface(shell));
if (docShell) {
- nsIContentViewer* cv = nsnull;
- docShell->GetContentViewer(&cv);
- if (nsnull != cv) {
- nsIDocumentViewer* docv = nsnull;
- cv->QueryInterface(NS_GET_IID(nsIDocumentViewer), (void**) &docv);
- if (nsnull != docv) {
- nsIDocument* doc = nsnull;
- docv->GetDocument(doc);
- if (nsnull != doc) {
- nsIContent* root;
- root = doc->GetRootContent();
- if (nsnull != root) {
+ nsCOMPtr cv;
+ docShell->GetContentViewer(getter_AddRefs(cv));
+ if (cv) {
+ nsCOMPtr docv = do_QueryInterface(cv);
+ if (docv) {
+ nsCOMPtr doc;
+ docv->GetDocument(*getter_AddRefs(doc));
+ if (doc) {
+ nsCOMPtr root;
+ root = dont_AddRef(doc->GetRootContent());
+ if (root) {
FindURLsIn(doc, root);
- NS_RELEASE(root);
}
- NS_RELEASE(doc);
}
- NS_RELEASE(docv);
}
- NS_RELEASE(cv);
}
- NS_RELEASE(shell);
}
}
@@ -851,36 +812,12 @@ nsWebCrawler::GetBrowserWindow(nsBrowserWindow** aWindow)
*aWindow = mBrowser;
}
-static void
-TimerCallBack(nsITimer *aTimer, void *aClosure)
-{
- nsWebCrawler* wc = (nsWebCrawler*) aClosure;
- wc->LoadNextURL(PR_TRUE);
-}
-
void
nsWebCrawler::LoadNextURL(PRBool aQueueLoad)
{
- nsString* url = (nsString*) mPendingURLs.ElementAt(0);
- if (nsnull != url) {
- PRInt32 delay = GetDelay(*url);
- if (delay >= 0) {
- SetDelay(delay);
- mPendingURLs.RemoveElementAt(0);
- char buf[128];
- url->ToCString(&buf[0], 128);
- printf("%s\n", buf);
- }
- }
-
- if ((0 != mDelay) && (mPendingURLs.Count() > 0)) {
- mTimer = do_CreateInstance("@mozilla.org/timer;1");
- mTimer->Init(TimerCallBack, (void *)this, mDelay * 1000);
- }
-
if ((mMaxPages < 0) || (mMaxPages > 0)) {
while (0 != mPendingURLs.Count()) {
- url = NS_REINTERPRET_CAST(nsString*, mPendingURLs.ElementAt(0));
+ nsString* url = NS_REINTERPRET_CAST(nsString*, mPendingURLs.ElementAt(0));
mPendingURLs.RemoveElementAt(0);
if (nsnull != url) {
if (OkToLoad(*url)) {
diff --git a/mozilla/webshell/tests/viewer/nsWebCrawler.h b/mozilla/webshell/tests/viewer/nsWebCrawler.h
index 7b624f3bbf4..6c2aeb1efa0 100644
--- a/mozilla/webshell/tests/viewer/nsWebCrawler.h
+++ b/mozilla/webshell/tests/viewer/nsWebCrawler.h
@@ -64,11 +64,6 @@ public:
void SetBrowserWindow(nsBrowserWindow* aWindow);
void GetBrowserWindow(nsBrowserWindow** aWindow);
- // Set the delay (by default, the timer is set to one second)
- void SetDelay(PRInt32 aSeconds) {
- mDelay = aSeconds;
- }
-
void SetPrintTest(PRInt32 aTestType) { mPrinterTestType = aTestType; }
void RegressionOutput(PRInt32 aRegressionOutputLevel) { mRegressionOutputLevel = aRegressionOutputLevel; }
@@ -100,20 +95,25 @@ public:
void SetOutputDir(const nsString& aOutputDir);
- void DumpRegressionData(nsIWebShell* aWebShell,
- nsIURI* aURL);
+ void DumpRegressionData();
void SetRegressionDir(const nsString& aOutputDir);
void SetEnableRegression(PRBool aSetting) {
mRegressing = aSetting;
}
+ static void
+ LoadNextURLCallback(nsITimer* aTimer, void* aClosure);
+
void LoadNextURL(PRBool aQueueLoad);
nsresult QueueLoadURL(const nsString& aURL);
void GoToQueuedURL(const nsString& aURL);
+ static void
+ QueueExitCallback(nsITimer* atimer, void* aClosure);
+
void QueueExit();
void Exit();
@@ -169,13 +169,11 @@ protected:
PRBool mHaveURLList;
PRBool mJiggleLayout;
PRBool mPostExit;
- PRInt32 mDelay; // first delay encountered from command line or delay:= in file
- PRInt32 mLastDelay; // last delay encountered from command line or delay:= in file
+ PRInt32 mDelay;
PRInt32 mMaxPages;
nsString mCurrentURL;
nsCOMPtr mLastURL;
- nsIWebShell* mLastWebShell;
PRTime mStartLoad;
PRBool mVerbose;