diff options
author | adele <adele@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2005-06-17 20:00:11 +0000 |
---|---|---|
committer | adele <adele@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2005-06-17 20:00:11 +0000 |
commit | 51584ae24ae6649e1d62af7d0d48b71e0043a6d7 (patch) | |
tree | 70caa3787205eae66c6f9d6933b0a48cbbde2bbd | |
parent | e74bf8c54d990a0078e39a52f315526b2471f019 (diff) | |
download | chromium_src-51584ae24ae6649e1d62af7d0d48b71e0043a6d7.zip chromium_src-51584ae24ae6649e1d62af7d0d48b71e0043a6d7.tar.gz chromium_src-51584ae24ae6649e1d62af7d0d48b71e0043a6d7.tar.bz2 |
Reviewed by Maciej.
- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3419
<rdar://problem/4111752> REGRESSION (125-312/412): Safari doesn't display edmunds.com pages first time through
* khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): set 'script' flag when
parsing <script src="foo" /> case. In this case, parseTag calls the scriptHandler function which expects
that flag to be set, and sets it back to false at the appropriate time.
Test cases added: These still don't test the cached script cases, but they're good regression
tests for the tokenizer. We'll have to come up with a good way to test the cached cases later.
* layout-tests/fast/tokenizer/external-script-document-write_2-expected.txt: Added.
* layout-tests/fast/tokenizer/external-script-document-write_2.html: Added.
* layout-tests/fast/tokenizer/resources/empty_script.js: Added.
* layout-tests/fast/tokenizer/script_extra_close-expected.txt: Added.
* layout-tests/fast/tokenizer/script_extra_close.html: Added.
* layout-tests/fast/tokenizer/script_quirk-expected.txt: Added.
* layout-tests/fast/tokenizer/script_quirk.html: Added.
git-svn-id: svn://svn.chromium.org/blink/trunk@9414 bbb929c8-8fbe-4397-9dbb-9b2b20218538
9 files changed, 81 insertions, 1 deletions
diff --git a/third_party/WebKit/LayoutTests/fast/tokenizer/external-script-document-write_2-expected.txt b/third_party/WebKit/LayoutTests/fast/tokenizer/external-script-document-write_2-expected.txt new file mode 100644 index 0000000..e4832e7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/tokenizer/external-script-document-write_2-expected.txt @@ -0,0 +1,9 @@ +layer at (0,0) size 800x600 + RenderCanvas at (0,0) size 800x600 +layer at (0,0) size 800x600 + RenderBlock {HTML} at (0,0) size 800x600 + RenderBody {BODY} at (8,8) size 784x584 + RenderText {TEXT} at (0,0) size 275x18 + text run at (0,0) width 112: "TEST PASSED. " + text run at (112,0) width 163: "This text should show up." + RenderText {TEXT} at (0,0) size 0x0 diff --git a/third_party/WebKit/LayoutTests/fast/tokenizer/external-script-document-write_2.html b/third_party/WebKit/LayoutTests/fast/tokenizer/external-script-document-write_2.html new file mode 100644 index 0000000..3bbfcf0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/tokenizer/external-script-document-write_2.html @@ -0,0 +1,9 @@ +<html> +<body> +<script> + document.write('<scr'+'ipt src="resources/empty_script.js"></scr'+'ipt>'); +</script> +<script src=""></script> +TEST PASSED. This text should show up. +</body> +</html>
\ No newline at end of file diff --git a/third_party/WebKit/LayoutTests/fast/tokenizer/resources/empty_script.js b/third_party/WebKit/LayoutTests/fast/tokenizer/resources/empty_script.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/tokenizer/resources/empty_script.js diff --git a/third_party/WebKit/LayoutTests/fast/tokenizer/script_extra_close-expected.txt b/third_party/WebKit/LayoutTests/fast/tokenizer/script_extra_close-expected.txt new file mode 100644 index 0000000..cafc5c3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/tokenizer/script_extra_close-expected.txt @@ -0,0 +1,13 @@ +layer at (0,0) size 800x600 + RenderCanvas at (0,0) size 800x600 +layer at (0,0) size 800x600 + RenderBlock {HTML} at (0,0) size 800x600 + RenderBody {BODY} at (8,8) size 784x584 + RenderText {TEXT} at (0,0) size 55x18 + text run at (0,0) width 55: "TEST... " + RenderText {TEXT} at (0,0) size 0x0 + RenderText {TEXT} at (0,0) size 0x0 + RenderText {TEXT} at (55,0) size 232x18 + text run at (55,0) width 69: "PASSED. " + text run at (124,0) width 163: "This text should show up." + RenderText {TEXT} at (0,0) size 0x0 diff --git a/third_party/WebKit/LayoutTests/fast/tokenizer/script_extra_close.html b/third_party/WebKit/LayoutTests/fast/tokenizer/script_extra_close.html new file mode 100644 index 0000000..0d1f6d7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/tokenizer/script_extra_close.html @@ -0,0 +1,10 @@ +<html> +<body> +TEST... +<script src="" /> +</script> +<script src="resources/empty_script.js"> +</script> +PASSED. This text should show up. +</body> +</html>
\ No newline at end of file diff --git a/third_party/WebKit/LayoutTests/fast/tokenizer/script_quirk-expected.txt b/third_party/WebKit/LayoutTests/fast/tokenizer/script_quirk-expected.txt new file mode 100644 index 0000000..e4832e7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/tokenizer/script_quirk-expected.txt @@ -0,0 +1,9 @@ +layer at (0,0) size 800x600 + RenderCanvas at (0,0) size 800x600 +layer at (0,0) size 800x600 + RenderBlock {HTML} at (0,0) size 800x600 + RenderBody {BODY} at (8,8) size 784x584 + RenderText {TEXT} at (0,0) size 275x18 + text run at (0,0) width 112: "TEST PASSED. " + text run at (112,0) width 163: "This text should show up." + RenderText {TEXT} at (0,0) size 0x0 diff --git a/third_party/WebKit/LayoutTests/fast/tokenizer/script_quirk.html b/third_party/WebKit/LayoutTests/fast/tokenizer/script_quirk.html new file mode 100644 index 0000000..2bd80fc --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/tokenizer/script_quirk.html @@ -0,0 +1,6 @@ +<html> +<body> +<script src="resources/empty_script.js" /> +TEST PASSED. This text should show up. +</body> +</html
\ No newline at end of file diff --git a/third_party/WebKit/WebCore/ChangeLog-2005-08-23 b/third_party/WebKit/WebCore/ChangeLog-2005-08-23 index d5c089a..a9db174 100644 --- a/third_party/WebKit/WebCore/ChangeLog-2005-08-23 +++ b/third_party/WebKit/WebCore/ChangeLog-2005-08-23 @@ -1,3 +1,25 @@ +2005-06-17 Adele Peterson <adele@apple.com> + + Reviewed by Maciej. + + - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3419 + <rdar://problem/4111752> REGRESSION (125-312/412): Safari doesn't display edmunds.com pages first time through + + * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): set 'script' flag when + parsing <script src="foo" /> case. In this case, parseTag calls the scriptHandler function which expects + that flag to be set, and sets it back to false at the appropriate time. + + Test cases added: These still don't test the cached script cases, but they're good regression + tests for the tokenizer. We'll have to come up with a good way to test the cached cases later. + + * layout-tests/fast/tokenizer/external-script-document-write_2-expected.txt: Added. + * layout-tests/fast/tokenizer/external-script-document-write_2.html: Added. + * layout-tests/fast/tokenizer/resources/empty_script.js: Added. + * layout-tests/fast/tokenizer/script_extra_close-expected.txt: Added. + * layout-tests/fast/tokenizer/script_extra_close.html: Added. + * layout-tests/fast/tokenizer/script_quirk-expected.txt: Added. + * layout-tests/fast/tokenizer/script_quirk.html: Added. + 2005-06-17 Justin Garcia <justin.garcia@apple.com> Fixed fprintf problem in gcc4.0 diff --git a/third_party/WebKit/WebCore/khtml/html/htmltokenizer.cpp b/third_party/WebKit/WebCore/khtml/html/htmltokenizer.cpp index b7c9678..80b8b53 100644 --- a/third_party/WebKit/WebCore/khtml/html/htmltokenizer.cpp +++ b/third_party/WebKit/WebCore/khtml/html/htmltokenizer.cpp @@ -1434,8 +1434,10 @@ void HTMLTokenizer::parseTag(TokenizerString &src) script = true; parseSpecial(src); } - else if (tagID <= ID_CLOSE_TAG) // Handle <script src="foo"/> + else if (tagID <= ID_CLOSE_TAG) { // Handle <script src="foo"/> + script = true; scriptHandler(); + } break; case ID_STYLE: if (beginTag) { |