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;