Index: third_party/WebKit/LayoutTests/http/tests/preload/document-write/document_write_no_preload.html |
diff --git a/third_party/WebKit/LayoutTests/http/tests/preload/document-write/document_write_no_preload.html b/third_party/WebKit/LayoutTests/http/tests/preload/document-write/document_write_no_preload.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..048424babd8ef739a28cbc1750ea524d1a1c88a5 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/preload/document-write/document_write_no_preload.html |
@@ -0,0 +1,73 @@ |
+<!DOCTYPE html> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+ |
+<script> |
+ var t = async_test('Do not preload for document.write for long scripts or scripts that contain non-determinism'); |
+ // We reject scripts with "for", so rename window.performance. |
+ window.perf = window.performance; |
+</script> |
+ |
+<script> |
+ // This script is too long for preloading. |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+ if (window.perf) |
+ var boundedStart1 = window.perf.now(); |
+ var src = '../../resources/dummy.js'; |
+ document.write('<scr' + 'ipt src="' + src + '"></scr' + 'ipt>'); |
+</script> |
+ |
+<script> |
+ // This script has non-determinism. |
+ if (window.perf) |
+ var boundedStart2 = window.perf.now(); |
+ var src = '../../loading/resources/empty.js'; |
+ if (Math.random() < .9) { |
+ src = src + "?query=randomly_added_query"; |
+ } |
+ document.write('<scr' + 'ipt src="' + src + '"></scr' + 'ipt>'); |
+</script> |
+ |
+<script> |
+ // This script has non-determinism. |
+ if (window.perf) |
+ var boundedStart3 = window.perf.now(); |
+ var src = '../../loading/resources/zero-length.js?date=' + Date.now(); |
+ document.write('<scr' + 'ipt src="' + src + '"></scr' + 'ipt>'); |
+</script> |
+ |
+<script> |
+ window.addEventListener("load", t.step_func(function() { |
+ assert_greater_than_equal(window.performance.getEntriesByType('resource').length, 4); |
+ var count = 0; |
+ window.performance.getEntriesByType('resource').forEach(function(r) { |
+ assert_greater_than(r.startTime, 0); |
+ if (r.name.indexOf('dummy.js') != -1) { |
+ assert_greater_than(r.startTime, boundedStart1); |
+ count++; |
+ } else if (r.name.indexOf('empty.js') != -1) { |
+ assert_greater_than(r.startTime, boundedStart2); |
+ count++; |
+ } else if (r.name.indexOf('zero-length.js') != -1) { |
+ assert_greater_than(r.startTime, boundedStart3); |
+ count++; |
+ } |
+ }); |
+ assert_equals(count, 3); |
+ t.done(); |
+ })); |
+</script> |
+ |