diff --git a/Configurations/Sanitizers.xcconfig b/Configurations/Sanitizers.xcconfig index 99a36315996f9..accd7bf77cd6a 100644 --- a/Configurations/Sanitizers.xcconfig +++ b/Configurations/Sanitizers.xcconfig @@ -1,4 +1,4 @@ -// Copyright (C) 2023-2024 Apple Inc. All rights reserved. +// Copyright (C) 2023-2025 Apple Inc. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions @@ -26,6 +26,8 @@ // Requires SDKVariant.xcconfig. +#include "WebKitTargetConditionals.xcconfig" + WK_SANITIZER_GCC_OPTIMIZATION_LEVEL = $(WK_SANITIZER_GCC_OPTIMIZATION_LEVEL_$(CONFIGURATION)); WK_SANITIZER_GCC_OPTIMIZATION_LEVEL_Debug = 0; WK_SANITIZER_GCC_OPTIMIZATION_LEVEL_Production = 1; @@ -64,29 +66,16 @@ WK_ANY_SANITIZER_LDFLAGS_YES = -Wl,-rpath,@executable_path/Frameworks; // Address Sanitizer // Add -fsanitize-address-use-after-return=never to disable ASan's "fake stack" to fix JSC garbage collection. -WK_ADDRESS_SANITIZER_OTHER_CFLAGS_YES = -fsanitize-address-use-after-return=never $(WK_NEEDS_ASAN_USE_AFTER_SCOPE_WORKAROUND_FOR_$(PRODUCT_NAME)_$(WK_NEEDS_ASAN_USE_AFTER_SCOPE_WORKAROUND)); +WK_ADDRESS_SANITIZER_OTHER_CFLAGS_YES = -fsanitize-address-use-after-return=never $(WK_WORKAROUND_RDAR_145268301_ASAN_STACK_USE_AFTER_SCOPE); WK_ADDRESS_SANITIZER_OTHER_LDFLAGS_YES = -fsanitize-address-use-after-return=never; WK_ADDRESS_SANITIZER_OTHER_CPLUSPLUSFLAGS_YES = -U_LIBCPP_HAS_NO_ASAN; -// Workaround ASan false positive in certain Xcode versions: . -WK_NEEDS_ASAN_USE_AFTER_SCOPE_WORKAROUND_FOR_bmalloc_YES = -DWK_WORKAROUND_RDAR_87613908_ASAN_STACK_USE_AFTER_SCOPE; - -WK_NEEDS_ASAN_USE_AFTER_SCOPE_WORKAROUND = $(WK_NOT_$(WK_OR_$(WK_XCODE_VERSION_BEFORE_13_3_$(XCODE_VERSION_MAJOR))_$(WK_XCODE_VERSION_AFTER_13_3_$(XCODE_VERSION_MAJOR)))); - -WK_XCODE_VERSION_BEFORE_13_3_0800 = YES; -WK_XCODE_VERSION_BEFORE_13_3_0900 = YES; -WK_XCODE_VERSION_BEFORE_13_3_1000 = YES; -WK_XCODE_VERSION_BEFORE_13_3_1100 = YES; -WK_XCODE_VERSION_BEFORE_13_3_1200 = YES; -WK_XCODE_VERSION_BEFORE_13_3_1300 = $(WK_XCODE_VERSION_BEFORE_13_3_1300_$(XCODE_VERSION_MINOR)); -WK_XCODE_VERSION_BEFORE_13_3_1300_1300 = YES; -WK_XCODE_VERSION_BEFORE_13_3_1300_1310 = YES; -WK_XCODE_VERSION_BEFORE_13_3_1300_1320 = YES; -WK_XCODE_VERSION_AFTER_13_3_1400 = YES; -WK_XCODE_VERSION_AFTER_13_3_1500 = YES; -WK_XCODE_VERSION_AFTER_13_3_1600 = YES; -WK_XCODE_VERSION_AFTER_13_3_1700 = YES; +// Workaround ASan stack-use-after-scope false positive in Xcode 16.3: . +WK_NEEDS_RDAR_145268301_ASAN_STACK_USE_AFTER_SCOPE_WORKAROUND = $(WK_NOT_$(WK_XCODE_BEFORE_16_3)); + +WK_WORKAROUND_RDAR_145268301_ASAN_STACK_USE_AFTER_SCOPE = $(WK_WORKAROUND_RDAR_145268301_ASAN_STACK_USE_AFTER_SCOPE_$(WK_NEEDS_RDAR_145268301_ASAN_STACK_USE_AFTER_SCOPE_WORKAROUND); +WK_WORKAROUND_RDAR_145268301_ASAN_STACK_USE_AFTER_SCOPE_YES = -DWK_WORKAROUND_RDAR_145268301_ASAN_STACK_USE_AFTER_SCOPE; // Undefined Behavior Sanitizer diff --git a/Configurations/WebKitTargetConditionals.xcconfig b/Configurations/WebKitTargetConditionals.xcconfig index e7fba47e5a479..b8f7885e8067d 100644 --- a/Configurations/WebKitTargetConditionals.xcconfig +++ b/Configurations/WebKitTargetConditionals.xcconfig @@ -1,4 +1,4 @@ -// Copyright (C) 2018-2024 Apple Inc. All rights reserved. +// Copyright (C) 2018-2025 Apple Inc. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions @@ -380,3 +380,14 @@ WK_XCODE_BEFORE_16_1500 = YES; WK_XCODE_16 = $(WK_XCODE_16_$(WK_XCODE_BEFORE_16)); WK_XCODE_16_ = _XCODE_SINCE_16; WK_XCODE_16_YES = _XCODE_BEFORE_16; + +WK_XCODE_BEFORE_16_3 = $(WK_XCODE_BEFORE_16_3$(WK_XCODE_16)); +WK_XCODE_BEFORE_16_3_XCODE_BEFORE_16 = YES; +WK_XCODE_BEFORE_16_3_XCODE_SINCE_16 = $(WK_XCODE_BEFORE_16_3_$(XCODE_VERSION_MINOR)); +WK_XCODE_BEFORE_16_3_1600 = YES; +WK_XCODE_BEFORE_16_3_1610 = YES; +WK_XCODE_BEFORE_16_3_1620 = YES; + +WK_XCODE_16_3 = $(WK_XCODE_16_3_$(WK_XCODE_BEFORE_16_3)); +WK_XCODE_16_3_ = _XCODE_SINCE_16_3; +WK_XCODE_16_3_YES = _XCODE_BEFORE_16_3; diff --git a/JSTests/microbenchmarks/array-prototype-includes-bigint.js b/JSTests/microbenchmarks/array-prototype-includes-bigint.js new file mode 100644 index 0000000000000..9ebd06001a4d5 --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-bigint.js @@ -0,0 +1,9 @@ +for (var i = 0; i < 1e5; ++i) { + [ + 0n,1n,2n,3n,4n,5n,6n,7n,8n,9n,10n,11n,12n,13n,14n,15n, + 31n,30n,29n,28n,27n,26n,25n,24n,23n,22n,21n,20n,19n, + 18n,17n,16n,32n,33n,34n,35n,36n,37n,38n,39n,40n,41n, + 42n,43n,44n,45n,46n,47n,63n,62n,61n,60n,59n,58n,57n, + 56n,55n,54n,53n,52n,51n,50n,49n, + ].includes(38n); +} diff --git a/JSTests/microbenchmarks/array-prototype-includes-contiguous.js b/JSTests/microbenchmarks/array-prototype-includes-contiguous.js new file mode 100644 index 0000000000000..6801eed8d943a --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-contiguous.js @@ -0,0 +1,21 @@ +const search = { value: 36 }; +const array = [ + { value: 0 }, { value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }, + { value: 5 }, { value: 6 }, { value: 7 }, { value: 8 }, { value: 9 }, + { value: 10 }, { value: 11 }, { value: 12 }, { value: 13 }, { value: 14 }, + { value: 15 }, { value: 31 }, { value: 30 }, { value: 29 }, { value: 28 }, + { value: 27 }, { value: 26 }, { value: 25 }, { value: 24 }, { value: 23 }, + { value: 22 }, { value: 21 }, { value: 20 }, { value: 19 }, { value: 18 }, + { value: 17 }, { value: 16 }, { value: 32 }, { value: 33 }, { value: 34 }, + { value: 35 }, search, { value: 37 }, { value: 38 }, { value: 39 }, + { value: 40 }, { value: 41 }, { value: 42 }, { value: 43 }, { value: 44 }, + { value: 45 }, { value: 46 }, { value: 47 }, { value: 63 }, { value: 62 }, + { value: 61 }, { value: 60 }, { value: 59 }, { value: 58 }, { value: 57 }, + { value: 56 }, { value: 55 }, { value: 54 }, { value: 53 }, { value: 52 }, + { value: 51 }, { value: 50 }, { value: 49 }, +]; + +for (var i = 0; i < 1e6; ++i) { + array.includes(search); +} + diff --git a/JSTests/microbenchmarks/array-prototype-includes-double-from-contiguous.js b/JSTests/microbenchmarks/array-prototype-includes-double-from-contiguous.js new file mode 100644 index 0000000000000..ada96523e6f5d --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-double-from-contiguous.js @@ -0,0 +1,20 @@ +const array = [ + { value: 0 }, { value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }, + { value: 5 }, { value: 6 }, { value: 7 }, { value: 8 }, { value: 9 }, + { value: 10 }, { value: 11 }, { value: 12 }, { value: 13 }, { value: 14 }, + { value: 15 }, { value: 31 }, { value: 30 }, { value: 29 }, { value: 28 }, + { value: 27 }, { value: 26 }, { value: 25 }, { value: 24 }, { value: 23 }, + { value: 22 }, { value: 21 }, { value: 20 }, { value: 19 }, { value: 18 }, + { value: 17 }, { value: 16 }, { value: 32 }, { value: 33 }, { value: 34 }, + { value: 35 }, 3.6, { value: 37 }, { value: 38 }, { value: 39 }, + { value: 40 }, { value: 41 }, { value: 42 }, { value: 43 }, { value: 44 }, + { value: 45 }, { value: 46 }, { value: 47 }, { value: 63 }, { value: 62 }, + { value: 61 }, { value: 60 }, { value: 59 }, { value: 58 }, { value: 57 }, + { value: 56 }, { value: 55 }, { value: 54 }, { value: 53 }, { value: 52 }, + { value: 51 }, { value: 50 }, { value: 49 }, +]; + +for (var i = 0; i < 1e6; ++i) { + array.includes(3.6); +} + diff --git a/JSTests/microbenchmarks/array-prototype-includes-double.js b/JSTests/microbenchmarks/array-prototype-includes-double.js new file mode 100644 index 0000000000000..f96e7ab91946c --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-double.js @@ -0,0 +1,9 @@ +for (var i = 0; i < 1e6; ++i) { + [ + 0.2, 1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 8.2, 9.2, 10.2, 11.2, 12.2, 13.2, 14.2, 15.2, + 31.2, 30.2, 29.2, 28.2, 27.2, 26.2, 25.2, 24.2, 23.2, 22.2, 21.2, 20.2, 19.2, 18.2, + 17.2, 16.2, 32.2, 33.2, 34.2, 35.2, 36.2, 37.2, 38.2, 39.2, 40.2, 41.2, 42.2, 43.2, + 44.2, 45.2, 46.2, 47.2, 63.2, 62.2, 61.2, 60.2, 59.2, 58.2, 57.2, 56.2, 55.2, 54.2, + 53.2, 52.2, 51.2, 50.2, 49.2, + ].includes(38.2); +} diff --git a/JSTests/microbenchmarks/array-prototype-includes-int32-from-contiguous.js b/JSTests/microbenchmarks/array-prototype-includes-int32-from-contiguous.js new file mode 100644 index 0000000000000..24c8fd3413bdc --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-int32-from-contiguous.js @@ -0,0 +1,20 @@ +const array = [ + { value: 0 }, { value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }, + { value: 5 }, { value: 6 }, { value: 7 }, { value: 8 }, { value: 9 }, + { value: 10 }, { value: 11 }, { value: 12 }, { value: 13 }, { value: 14 }, + { value: 15 }, { value: 31 }, { value: 30 }, { value: 29 }, { value: 28 }, + { value: 27 }, { value: 26 }, { value: 25 }, { value: 24 }, { value: 23 }, + { value: 22 }, { value: 21 }, { value: 20 }, { value: 19 }, { value: 18 }, + { value: 17 }, { value: 16 }, { value: 32 }, { value: 33 }, { value: 34 }, + { value: 35 }, 3, { value: 37 }, { value: 38 }, { value: 39 }, + { value: 40 }, { value: 41 }, { value: 42 }, { value: 43 }, { value: 44 }, + { value: 45 }, { value: 46 }, { value: 47 }, { value: 63 }, { value: 62 }, + { value: 61 }, { value: 60 }, { value: 59 }, { value: 58 }, { value: 57 }, + { value: 56 }, { value: 55 }, { value: 54 }, { value: 53 }, { value: 52 }, + { value: 51 }, { value: 50 }, { value: 49 }, +]; + +for (var i = 0; i < 1e6; ++i) { + array.includes(3); +} + diff --git a/JSTests/microbenchmarks/array-prototype-includes-int32.js b/JSTests/microbenchmarks/array-prototype-includes-int32.js new file mode 100644 index 0000000000000..14d020191a74c --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-int32.js @@ -0,0 +1,11 @@ +function test(array, searchElement) { + return array.includes(searchElement); +} +noInline(test); + +var array = new Array(1024); +for (var i = 0; i < array.length; i++) + array[i] = i; + +for (var i = 0; i < 1e6; ++i) + test(array, 512); diff --git a/JSTests/microbenchmarks/array-prototype-includes-string-16-const.js b/JSTests/microbenchmarks/array-prototype-includes-string-16-const.js new file mode 100644 index 0000000000000..43431b3909c40 --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-string-16-const.js @@ -0,0 +1,36 @@ +function test(array, value) { + return array.includes(value); +} +noInline(test); + +const array = [ + "あいうえおかきくけこさしすせそたちつてとなにぬねの", + "かきくけこさしすせそたちつてとなにぬねのはひふへほ", + "さしすせそたちつてとなにぬねのはひふへほまみむめも", + "たちつてとなにぬねのはひふへほまみむめもやゆよらり", + "なにぬねのはひふへほまみむめもやゆよらりるれろわを", + "はひふへほまみむめもやゆよらりるれろわをんあいうえ", + "まみむめもやゆよらりるれろわをんあいうえおかきくけ", + "やゆよらりるれろわをんあいうえおかきくけこさしすせ", + "らりるれろわをんあいうえおかきくけこさしすせそたち", + "わをんあいうえおかきくけこさしすせそたちつてとなに", + "んあいうえおかきくけこさしすせそたちつてとなにぬね", + "ひふへほまみむめもやゆよらりるれろわをんあいうえお", + "ふへほまみむめもやゆよらりるれろわをんあいうえおか", + "へほまみむめもやゆよらりるれろわをんあいうえおかき", + "ほまみむめもやゆよらりるれろわをんあいうえおかきく", + "みむめもやゆよらりるれろわをんあいうえおかきくけこ", + "むめもやゆよらりるれろわをんあいうえおかきくけこさ", + "めもやゆよらりるれろわをんあいうえおかきくけこさし", + "もやゆよらりるれろわをんあいうえおかきくけこさしす", + "ゆよらりるれろわをんあいうえおかきくけこさしすせそ", + "よらりるれろわをんあいうえおかきくけこさしすせそた", + "らりるれろわをんあいうえおかきくけこさしすせそたち", + "りるれろわをんあいうえおかきくけこさしすせそたちつ", + "るれろわをんあいうえおかきくけこさしすせそたちつて", + "れろわをんあいうえおかきくけこさしすせそたちつてと", + "ろわをんあいうえおかきくけこさしすせそたちつてとな", +]; + +for (var i = 0; i < 1e6; ++i) + test(array, "もやゆよらりるれろわをんあいうえおかきくけこさしす"); diff --git a/JSTests/microbenchmarks/array-prototype-includes-string-16.js b/JSTests/microbenchmarks/array-prototype-includes-string-16.js new file mode 100644 index 0000000000000..39bbf59ea7174 --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-string-16.js @@ -0,0 +1,36 @@ +function test(array, value) { + return array.includes(value); +} +noInline(test); + +const array = [ + "あいうえおかきくけこさしすせそたちつてとなにぬねの", + "かきくけこさしすせそたちつてとなにぬねのはひふへほ", + "さしすせそたちつてとなにぬねのはひふへほまみむめも", + "たちつてとなにぬねのはひふへほまみむめもやゆよらり", + "なにぬねのはひふへほまみむめもやゆよらりるれろわを", + "はひふへほまみむめもやゆよらりるれろわをんあいうえ", + "まみむめもやゆよらりるれろわをんあいうえおかきくけ", + "やゆよらりるれろわをんあいうえおかきくけこさしすせ", + "らりるれろわをんあいうえおかきくけこさしすせそたち", + "わをんあいうえおかきくけこさしすせそたちつてとなに", + "んあいうえおかきくけこさしすせそたちつてとなにぬね", + "ひふへほまみむめもやゆよらりるれろわをんあいうえお", + "ふへほまみむめもやゆよらりるれろわをんあいうえおか", + "へほまみむめもやゆよらりるれろわをんあいうえおかき", + "ほまみむめもやゆよらりるれろわをんあいうえおかきく", + "みむめもやゆよらりるれろわをんあいうえおかきくけこ", + "むめもやゆよらりるれろわをんあいうえおかきくけこさ", + "めもやゆよらりるれろわをんあいうえおかきくけこさし", + "もやゆよらりるれろわをんあいうえおかきくけこさしす", + "ゆよらりるれろわをんあいうえおかきくけこさしすせそ", + "よらりるれろわをんあいうえおかきくけこさしすせそた", + "らりるれろわをんあいうえおかきくけこさしすせそたち", + "りるれろわをんあいうえおかきくけこさしすせそたちつ", + "るれろわをんあいうえおかきくけこさしすせそたちつて", + "れろわをんあいうえおかきくけこさしすせそたちつてと", + "ろわをんあいうえおかきくけこさしすせそたちつてとな", +]; + +for (var i = 0; i < 1e6; ++i) + test(array, "もやゆよらりるれろわをん" + "あいうえおかきくけこさしす"); diff --git a/JSTests/microbenchmarks/array-prototype-includes-string-const.js b/JSTests/microbenchmarks/array-prototype-includes-string-const.js new file mode 100644 index 0000000000000..3baf296813689 --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-string-const.js @@ -0,0 +1,35 @@ +function test(array, index) { + return array.includes(index); +} +noInline(test); + +const array = [ + "dEXt0TxZQQQasd999!@#$%d^&", + "AAZZ!!@@**CC77zzxx1122d33", + "HelloWorldHeldloWorlddABC", + "abcABC123!@#xfyzXYZ!$d%+=", + "Zyx9!Zyx9!Zyx9!Zyx9!!d???", + "LoremIpsum1234!@#$LordemI", + "QQQQQQQQQQqqqqqqqqqq-----", + "&&&&1111%%%%2222@@@@33f33", + "TestStringasdVariousChars", + "RandomASCII~d~~~====?????", + "^^^^#####^^^f^^+++++.....", + "AZaz09!?AZaz09!?AZaz09!?%", + "Foobar##1122Foobar##1122F", + "9876543210!@d#$%^&*()_+=-", + "OneTwo3FourFive6Seven8Nin", + "Zwxy000111Zwxy000111Zwxy0", + "Spark!!!Spark???Spark%%%S", + "ShortAndSweet123??!!Short", + "BenchmarkCaseHere12345!!?", + "MultiLineString###000xxx@", + "ABCDEFGHabcdfefgh1234!!!!", + "111122223333d4444!!!!####", + "EndlessVariety?!@#$%^^^^^", + "PqrstUVWX9876pqrstUVWX987", + "MixItUpWith5omeWe!rdCHARS", + "FinallyZzYyXx!@#$4321)(*&", +]; +for (var i = 0; i < 1e6; ++i) + test(array, "BenchmarkCaseHere12345!!?"); diff --git a/JSTests/microbenchmarks/array-prototype-includes-string.js b/JSTests/microbenchmarks/array-prototype-includes-string.js new file mode 100644 index 0000000000000..d42f1c8498625 --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-includes-string.js @@ -0,0 +1,35 @@ +function test(array, index) { + return array.includes(index); +} +noInline(test); + +const array = [ + "dEXt0TxZQQQasd999!@#$%d^&", + "AAZZ!!@@**CC77zzxx1122d33", + "HelloWorldHeldloWorlddABC", + "abcABC123!@#xfyzXYZ!$d%+=", + "Zyx9!Zyx9!Zyx9!Zyx9!!d???", + "LoremIpsum1234!@#$LordemI", + "QQQQQQQQQQqqqqqqqqqq-----", + "&&&&1111%%%%2222@@@@33f33", + "TestStringasdVariousChars", + "RandomASCII~d~~~====?????", + "^^^^#####^^^f^^+++++.....", + "AZaz09!?AZaz09!?AZaz09!?%", + "Foobar##1122Foobar##1122F", + "9876543210!@d#$%^&*()_+=-", + "OneTwo3FourFive6Seven8Nin", + "Zwxy000111Zwxy000111Zwxy0", + "Spark!!!Spark???Spark%%%S", + "ShortAndSweet123??!!Short", + "BenchmarkCaseHere12345!!?", + "MultiLineString###000xxx@", + "ABCDEFGHabcdfefgh1234!!!!", + "111122223333d4444!!!!####", + "EndlessVariety?!@#$%^^^^^", + "PqrstUVWX9876pqrstUVWX987", + "MixItUpWith5omeWe!rdCHARS", + "FinallyZzYyXx!@#$4321)(*&", +]; +for (var i = 0; i < 1e6; ++i) + test(array, "Benchmark" + "CaseHere12345!!?"); diff --git a/JSTests/microbenchmarks/array-prototype-indexOf-int32-from-contiguous.js b/JSTests/microbenchmarks/array-prototype-indexOf-int32-from-contiguous.js new file mode 100644 index 0000000000000..8e9cf2d528bf0 --- /dev/null +++ b/JSTests/microbenchmarks/array-prototype-indexOf-int32-from-contiguous.js @@ -0,0 +1,19 @@ +const array = [ + { value: 0 }, { value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }, + { value: 5 }, { value: 6 }, { value: 7 }, { value: 8 }, { value: 9 }, + { value: 10 }, { value: 11 }, { value: 12 }, { value: 13 }, { value: 14 }, + { value: 15 }, { value: 31 }, { value: 30 }, { value: 29 }, { value: 28 }, + { value: 27 }, { value: 26 }, { value: 25 }, { value: 24 }, { value: 23 }, + { value: 22 }, { value: 21 }, { value: 20 }, { value: 19 }, { value: 18 }, + { value: 17 }, { value: 16 }, { value: 32 }, { value: 33 }, { value: 34 }, + { value: 35 }, 3, { value: 37 }, { value: 38 }, { value: 39 }, + { value: 40 }, { value: 41 }, { value: 42 }, { value: 43 }, { value: 44 }, + { value: 45 }, { value: 46 }, { value: 47 }, { value: 63 }, { value: 62 }, + { value: 61 }, { value: 60 }, { value: 59 }, { value: 58 }, { value: 57 }, + { value: 56 }, { value: 55 }, { value: 54 }, { value: 53 }, { value: 52 }, + { value: 51 }, { value: 50 }, { value: 49 }, +]; + +for (var i = 0; i < 1e6; ++i) { + array.indexOf(3); +} diff --git a/JSTests/microbenchmarks/regexp-keyword-parsing.js b/JSTests/microbenchmarks/regexp-keyword-parsing.js new file mode 100644 index 0000000000000..ca1779072791b --- /dev/null +++ b/JSTests/microbenchmarks/regexp-keyword-parsing.js @@ -0,0 +1,175 @@ +// With verbose set to false, this test is successful if there is no output. Set verbose to true to see expected matches. +let verbose = false; + +function arrayToString(arr) +{ + let str = ''; + arr.forEach(function(v, index) { + if (typeof v == "string") + str += "\"" + v + "\""; + else + str += v; + + if (index != (arr.length - 1)) + str += ','; + }); + return str; +} + +function objectToString(obj) +{ + let str = ""; + + firstEntry = true; + + for (const [key, value] of Object.entries(obj)) { + if (!firstEntry) + str += ", "; + + str += key + ": " + dumpValue(value); + + firstEntry = false; + } + + return "{ " + str + " }"; +} + +function dumpValue(v) +{ + if (v === null) + return ""; + + if (v === undefined) + return ""; + + if (typeof v == "string") + return "\"" + v + "\""; + + let str = ""; + + if (v.length) + str += arrayToString(v); + + if (v.groups) { + groupStr = objectToString(v.groups); + + if (str.length) { + if ( groupStr.length) + str += ", " + groupStr; + } else + str = groupStr; + } + + return "[ " + str + " ]"; +} + +function compareArray(expected, actual) +{ + if (expected === null && actual === null) + return true; + + if (expected === null) { + print("### expected is null, actual is not null"); + return false; + } + + if (actual === null) { + print("### expected is not null, actual is null"); + return false; + } + + if (expected.length !== actual.length) { + print("### expected.length: " + expected.length + ", actual.length: " + actual.length); + return false; + } + + for (var i = 0; i < expected.length; i++) { + if (expected[i] !== actual[i]) { + print("### expected[" + i + "]: \"" + expected[i] + "\" !== actual[" + i + "]: \"" + actual[i] + "\""); + return false; + } + } + + return true; +} + +function compareGroups(expected, actual) +{ + if (expected === null && actual === null) + return true; + + if (expected === null) { + print("### expected group is null, actual group is not null"); + return false; + } + + if (actual === null) { + print("### expected group is not null, actual group is null"); + return false; + } + + for (const key in expected) { + if (expected[key] !== actual[key]) { + print("### expected." + key + ": " + dumpValue(expected[key]) + " !== actual." + key + ": " + dumpValue(actual[key])); + return false; + } + } + + return true; +} + +let testNumber = 0; + +function testRegExp(re, str, exp, groups) +{ + testNumber++; + + if (groups) + exp.groups = groups; + + let actual = re.exec(str); + + let result = compareArray(exp, actual);; + + if (exp && exp.groups) { + if (!compareGroups(exp.groups, actual.groups)) + result = false; + } + + if (result) { + if (verbose) + print(re.toString() + ".exec(" + dumpValue(str) + "), passed ", dumpValue(exp)); + } else + print(re.toString() + ".exec(" + dumpValue(str) + "), FAILED test #" + testNumber + ", Expected ", dumpValue(exp), " got ", dumpValue(actual)); +} + +function testRegExpSyntaxError(reString, flags, expError) +{ + testNumber++; + + + try { + let re = new RegExp(reString, flags); + print("FAILED test #" + testNumber + ", Expected /" + reString + "/" + flags + " to throw \"" + expError + "\", but it didn't"); + } catch (e) { + if (e != expError) + print("FAILED test #" + testNumber + ", Expected /" + reString + "/" + flags + " to throw \"" + expError + "\" got \"" + e + "\""); + else if (verbose) + print("/" + reString + "/" + flags + " passed, it threw \"" + expError + "\" as expected"); + } +} + +let re = /^(?:break|case|catch|continue|debugger|default|do|else|finally|for|function|if|return|switch|throw|try|var|while|with|null|true|false|instanceof|typeof|void|delete|new|in|this)/; + +for (i = 0; i < 1000000; i++) { + testRegExp(re, "function", ["function"]); + testRegExp(re, "return", ["return"]); + testRegExp(re, "let", null); +} + +let re1 = /^(?:break|case|catch|continue|debugger|default|do|else|finally|for|function|if|return|switch|throw|try|var|while|with|null|true|false|instanceof|typeof|void|delete|new|in|this)$/; + +for (i = 0; i < 1000000; i++) { + testRegExp(re1, "throw", ["throw"]); + testRegExp(re1, "while", ["while"]); +} diff --git a/JSTests/microbenchmarks/sort-custom-comparator.js b/JSTests/microbenchmarks/sort-custom-comparator.js new file mode 100644 index 0000000000000..c9d65152bb1e1 --- /dev/null +++ b/JSTests/microbenchmarks/sort-custom-comparator.js @@ -0,0 +1,32 @@ + +let arraySize = 20000; + +function randArray(min, max) { + let a = []; + for (let i = 0; i < arraySize; ++i) { + a.push(min + Math.floor(Math.random() * (max - min))); + } + return a; +} + +let comparatorCalls = 0; + +function comparator(a, b) { + ++comparatorCalls; + return (a % 1337) - (b % 1337); +} + +for (let iteration = 0; iteration < 30; ++iteration) { + let arr = randArray(0, 1048576); + let tmp = arr.sort(); + // Partially sorted with HUGE runs + let sorted = tmp.sort(comparator); + for (let i = 0; i < sorted.length - 1; ++i) { + if (comparator(sorted[i], sorted[i+1]) > 0) { + throw new Error("bad"); + } + } +} + +print(comparatorCalls); + diff --git a/JSTests/slowMicrobenchmarks/jetstream2-octane-code-load.js b/JSTests/slowMicrobenchmarks/jetstream2-octane-code-load.js new file mode 100644 index 0000000000000..3cefdeeb4b2de --- /dev/null +++ b/JSTests/slowMicrobenchmarks/jetstream2-octane-code-load.js @@ -0,0 +1,1539 @@ +//@ runDefault + +// Copyright 2013 the Octane Benchmark project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +// The code in BASE_JS below: +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +// The code in JQUERY_JS below: +// Copyright (c) 2012 John Resig, http://jquery.com/ +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +function setupCodeLoad() { + salt = 0; + indirectEval = eval; +} + +function tearDownCodeLoad() { + salt = null; + indirectEval = null; +} + +function runCodeLoadClosure() { + runClosure(); + salt++; +} + +function runCodeLoadJQuery() { + runJQuery(); + salt++; +} + +/* + * BASE_JS is a compiled and formatted version of: + * http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/base.js + * JQUERY_JS is a formatted copy of: + * http://code.jquery.com/jquery.min.js + * The following Python script generates both variables: + +#!/usr/bin/env python + +import urllib +import urllib2 + +def escape_and_format(data, varname): + data = data.replace("\n", " ").replace("; ", ";") + data = data.replace("\\", "\\\\").replace("\"", "\\\"") + data = "var " + varname + " = \"" + data + "\"" + while len(data) > 0: + cutoff = min(79, len(data)) + while data[cutoff-1] == '\\': + cutoff -= 1 + line = data[0:cutoff] + data = data[cutoff:] + if len(data) > 0: + line += '\\' + print line + +url = "http://closure-compiler.appspot.com/compile" +request_params = {"output_format": "text", + "compilation_level": "SIMPLE_OPTIMIZATIONS", + "use_closure_library": "true", + "js_code": "", + "output_info": "compiled_code"} +result = urllib2.urlopen(url, urllib.urlencode(request_params)) +escape_and_format(result.read(), "BASE_JS") + +print "\n\n" + +url = "http://code.jquery.com/jquery.min.js" +result = urllib2.urlopen(url) +escape_and_format(result.read(), "JQUERY_JS") + +*/ +var BASE_JS = "var COMPILED=!0,goog=goog||{};goog.global=this;goog.DEBUG=!0;goo\ +g.LOCALE=\"en\";goog.provide=function(a){if(!COMPILED){if(goog.isProvided_(a))t\ +hrow Error('Namespace \"'+a+'\" already declared.');delete goog.implicitNamespa\ +ces_[a];for(var b=a;(b=b.substring(0,b.lastIndexOf(\".\")))&&!goog.getObjectByN\ +ame(b);)goog.implicitNamespaces_[b]=!0}goog.exportPath_(a)};goog.setTestOnly=fu\ +nction(a){if(COMPILED&&!goog.DEBUG)throw a=a||\"\",Error(\"Importing test-only \ +code into non-debug environment\"+a?\": \"+a:\".\");};COMPILED||(goog.isProvide\ +d_=function(a){return!goog.implicitNamespaces_[a]&&!!goog.getObjectByName(a)},g\ +oog.implicitNamespaces_={});goog.exportPath_=function(a,b,c){a=a.split(\".\");c\ +=c||goog.global;!(a[0]in c)&&c.execScript&&c.execScript(\"var \"+a[0]);for(var \ +d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]?c[d]:c[d]={}}\ +;goog.getObjectByName=function(a,b){for(var c=a.split(\".\"),d=b||goog.global,e\ +;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};g\ +oog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};goog.a\ +ddDependency=function(a,b,c){if(!COMPILED){for(var d,a=a.replace(/\\\\/g,\"/\")\ +,e=goog.dependencies_,g=0;d=b[g];g++){e.nameToPath[d]=a;a in e.pathToNames||(e.\ +pathToNames[a]={});e.pathToNames[a][d]=true}for(d=0;b=c[d];d++){a in e.requires\ +||(e.requires[a]={});e.requires[a][b]=true}}};goog.ENABLE_DEBUG_LOADER=!0;goog.\ +require=function(a){if(!COMPILED&&!goog.isProvided_(a)){if(goog.ENABLE_DEBUG_LO\ +ADER){var b=goog.getPathFromDeps_(a);if(b){goog.included_[b]=true;goog.writeScr\ +ipts_();return}}a=\"goog.require could not find: \"+a;goog.global.console&&goog\ +.global.console.error(a);throw Error(a);}};goog.basePath=\"\";goog.nullFunction\ +=function(){};goog.identityFunction=function(a){return a};goog.abstractMethod=f\ +unction(){throw Error(\"unimplemented abstract method\");};goog.addSingletonGet\ +ter=function(a){a.getInstance=function(){return a.instance_||(a.instance_=new a\ +)}};!COMPILED&&goog.ENABLE_DEBUG_LOADER&&(goog.included_={},goog.dependencies_=\ +{pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDoc\ +ument_=function(){var a=goog.global.document;return typeof a!=\"undefined\"&&\"\ +write\"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goo\ +g.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var\ + a=goog.global.document.getElementsByTagName(\"script\"),b=a.length-1;b>=0;--b)\ +{var c=a[b].src,d=c.lastIndexOf(\"?\"), d=d==-1?c.length:d;if(c.substr(d-7,7)==\ +\"base.js\"){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function\ +(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.depende\ +ncies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=true)},goog.writeScript\ +Tag_=function(a){if(goog.inHtmlDocument_()){goog.global.document.write('<\\/script>');return true}return false}\ +,goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.\ +visited)){d.visited[e]=true;if(e in d.requires)for(var f in d.requires[e])if(!g\ +oog.isProvided_(f))if(f in d.nameToPath)a(d.nameToPath[f]);else throw Error(\"U\ +ndefined nameToPath for \"+f);}if(!(e in c)){c[e]=true;b.push(e)}}}var b=[],c={\ +},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e2){var d=Array.pr\ +ototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.c\ +all(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return f\ +unction(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){goog.bind=Fun\ +ction.prototype.bind&&Function.prototype.bind.toString().indexOf(\"native code\ +\")!=-1?goog.bindNative_:goog.bindJs_;return goog.bind.apply(null,arguments)};g\ +oog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return \ +function(){var b=Array.prototype.slice.call(arguments);b.unshift.apply(b,c);ret\ +urn a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.n\ +ow=Date.now||function(){return+new Date};goog.globalEval=function(a){if(goog.gl\ +obal.execScript)goog.global.execScript(a,\"JavaScript\");else if(goog.global.ev\ +al){if(goog.evalWorksForGlobals_==null){goog.global.eval(\"var _et_ = 1;\");if(\ +typeof goog.global._et_!=\"undefined\"){delete goog.global._et_;goog.evalWorksF\ +orGlobals_=true}else goog.evalWorksForGlobals_=false}if(goog.evalWorksForGlobal\ +s_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement(\"scri\ +pt\");c.type=\"text/javascript\";c.defer=false;c.appendChild(b.createTextNode(a\ +));b.body.appendChild(c);b.body.removeChild(c)}}else throw Error(\"goog.globalE\ +val not available\");};goog.evalWorksForGlobals_=null;goog.getCssName=function(\ +a,b){var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){for(var\ + a=a.split(\"-\"),b=[],d=0;d\").appendTo\ +(b),e=d.css(\"display\");d.remove();if(e===\"none\"||e===\"\"){ck||(ck=c.create\ +Element(\"iframe\"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!\ +cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.wri\ +te((f.support.boxModel?\"\":\"\")+\"\"),cl.close();d\ +=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,\"display\"),b.removeChil\ +d(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],\ +cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr()\ +{setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObjec\ +t(\"Microsoft.XMLHTTP\")}catch(b){}}function ch(){try{return new a.XMLHttpReque\ +st}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var\ + d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!==\"border\")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNod\ +e.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){v\ +ar d=b+\"defer\",e=b+\"queue\",g=b+\"mark\",h=f._data(a,d);h&&(c===\"queue\"||!\ +f._data(a,e))&&(c===\"mark\"||!f._data(a,g))&&setTimeout(function(){!f._data(a,\ +e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b \ +in a){if(b===\"data\"&&f.isEmptyObject(a[b]))continue;if(b!==\"toJSON\")return!\ +1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e=\"data-\"+c.replac\ +e(k,\"-$1\").toLowerCase();d=a.getAttribute(e);if(typeof d==\"string\"){try{d=d\ +===\"true\"?!0:d===\"false\"?!1:d===\"null\"?null:f.isNumeric(d)?+d:j.test(d)?f\ +.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g\ +[a]={},c,d;a=a.split(/\\s+/);for(c=0,d=a.length;c)[^>]*$|#([\\w\\-]*)$)/,j=/\\S/,k=/^\\s+/,l=/\\s+$/,m=/^<\ +(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,n=/^[\\],:{}\\s]*$/,o=/\\\\(?:[\"\\\\\\/bfnrt]|u\ +[0-9a-fA-F]{4})/g,p=/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:\ +[eE][+\\-]?\\d+)?/g,q=/(?:^|:|,)(?:\\s*\\[)+/g,r=/(webkit)[ \\/]([\\w.]+)/,s=/(\ +opera)(?:.*version)?[ \\/]([\\w.]+)/,t=/(msie) ([\\w.]+)/,u=/(mozilla)(?:.*? rv\ +:([\\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+\"\").toU\ +pperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.\ +hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototyp\ +e.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:func\ +tion(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a\ +,this.length=1;return this}if(a===\"body\"&&!d&&c.body){this.context=c,this[0]=\ +c.body,this.selector=a,this.length=1;return this}if(typeof a==\"string\"){a.cha\ +rAt(0)!==\"<\"||a.charAt(a.length-1)!==\">\"||a.length<3?g=i.exec(a):g=[null,a,\ +null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d\ +:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a\ +,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable\ +?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElem\ +entById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1\ +,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f)\ +.find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.sel\ +ector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray\ +(a,this)},selector:\"\",jquery:\"1.7.2\",length:0,size:function(){return this.l\ +ength},toArray:function(){return F.call(this,0)},get:function(a){return a==null\ +?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var \ +d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d\ +.context=this.context,b===\"find\"?d.selector=this.selector+(this.selector?\" \ +\":\"\")+c:b&&(d.selector=this.selector+\".\"+b+\"(\"+c+\")\");return d},each:f\ +unction(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);\ +return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)}\ +,first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:\ +function(){return this.pushStack(F.apply(this,arguments),\"slice\",F.call(argum\ +ents).join(\",\"))},map:function(a){return this.pushStack(e.map(this,function(b\ +,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constr\ +uctor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.e\ +xtend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments\ +.length,l=!1;typeof i==\"boolean\"&&(l=i,i=arguments[1]||{},j=2),typeof i!=\"ob\ +ject\"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.tr\ +igger&&e(c).trigger(\"ready\").off(\"ready\")}},bindReady:function(){if(!A){A=e\ +.Callbacks(\"once memory\");if(c.readyState===\"complete\")return setTimeout(e.\ +ready,1);if(c.addEventListener)c.addEventListener(\"DOMContentLoaded\",B,!1),a.\ +addEventListener(\"load\",e.ready,!1);else if(c.attachEvent){c.attachEvent(\"on\ +readystatechange\",B),a.attachEvent(\"onload\",e.ready);var b=!1;try{b=a.frameE\ +lement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:functio\ +n(a){return e.type(a)===\"function\"},isArray:Array.isArray||function(a){return\ + e.type(a)===\"array\"},isWindow:function(a){return a!=null&&a==a.window},isNum\ +eric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){ret\ +urn a==null?String(a):I[C.call(a)]||\"object\"},isPlainObject:function(a){if(!a\ +||e.type(a)!==\"object\"||a.nodeType||e.isWindow(a))return!1;try{if(a.construct\ +or&&!D.call(a,\"constructor\")&&!D.call(a.constructor.prototype,\"isPrototypeOf\ +\"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isE\ +mptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){thro\ +w new Error(a)},parseJSON:function(b){if(typeof b!=\"string\"||!b)return null;b\ +=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o\ +,\"@\").replace(p,\"]\").replace(q,\"\")))return(new Function(\"return \"+b))()\ +;e.error(\"Invalid JSON: \"+b)},parseXML:function(c){if(typeof c!=\"string\"||!\ +c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,\"\ +text/xml\")):(d=new ActiveXObject(\"Microsoft.XMLDOM\"),d.async=\"false\",d.loa\ +dXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName(\"parsere\ +rror\").length)&&e.error(\"Invalid XML: \"+c);return d},noop:function(){},globa\ +lEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b\ +)},camelCase:function(a){return a.replace(w,\"ms-\").replace(v,x)},nodeName:fun\ +ction(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:\ +function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f\ + in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b\ +,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.\ +call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.\ +length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j\ +.promise();if(d>1){for(;c
a\",d=p.getElementsByTagNam\ +e(\"*\"),e=p.getElementsByTagName(\"a\")[0];if(!d||!d.length||!e)return{};g=c.c\ +reateElement(\"select\"),h=g.appendChild(c.createElement(\"option\")),i=p.getEl\ +ementsByTagName(\"input\")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tb\ +ody:!p.getElementsByTagName(\"tbody\").length,htmlSerialize:!!p.getElementsByTa\ +gName(\"link\").length,style:/top/.test(e.getAttribute(\"style\")),hrefNormaliz\ +ed:e.getAttribute(\"href\")===\"/a\",opacity:/^0.55/.test(e.style.opacity),cssF\ +loat:!!e.style.cssFloat,checkOn:i.value===\"on\",optSelected:h.selected,getSetA\ +ttribute:p.className!==\"t\",enctype:!!c.createElement(\"form\").enctype,html5C\ +lone:c.createElement(\"nav\").cloneNode(!0).outerHTML!==\"<:nav>\",submi\ +tBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0\ +,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMarg\ +in:!0},f.boxModel=b.boxModel=c.compatMode===\"CSS1Compat\",i.checked=!0,b.noClo\ +neChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{d\ +elete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.\ +fireEvent&&(p.attachEvent(\"onclick\",function(){b.noCloneEvent=!1}),p.cloneNod\ +e(!0).fireEvent(\"onclick\")),i=c.createElement(\"input\"),i.value=\"t\",i.setA\ +ttribute(\"type\",\"radio\"),b.radioValue=i.value===\"t\",i.setAttribute(\"chec\ +ked\",\"checked\"),i.setAttribute(\"name\",\"t\"),p.appendChild(i),j=c.createDo\ +cumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneN\ +ode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendCh\ +ild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m=\"on\"+n,o=m in\ + p,o||(p.setAttribute(m,\"return;\"),o=typeof p[m]==\"function\"),b[n+\"Bubbles\ +\"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,\ +t,u=c.getElementsByTagName(\"body\")[0];!u||(m=1,t=\"padding:0;margin:0;border:\ +\",r=\"position:absolute;top:0;left:0;width:1px;height:1px;\",s=t+\"0;visibilit\ +y:hidden;\",n=\"style='\"+r+t+\"5px solid #000;\",q=\"
\"+\"\"+\"\",d=c\ +.createElement(\"div\"),d.style.cssText=s+\"width:0;height:0;position:static;to\ +p:0;margin-top:\"+m+\"px\",u.insertBefore(d,u.firstChild),p=c.createElement(\"d\ +iv\"),d.appendChild(p),p.innerHTML=\"
t
\",k=p.getElementsByTagName(\"td\"),o=k[0].offse\ +tHeight===0,k[0].style.display=\"\",k[1].style.display=\"none\",b.reliableHidde\ +nOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML=\"\",l=c.cre\ +ateElement(\"div\"),l.style.width=\"0\",l.style.marginRight=\"0\",p.style.width\ +=\"2px\",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l\ +,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!=\"undefi\ +ned\"&&(p.innerHTML=\"\",p.style.width=p.style.padding=\"1px\",p.style.border=0\ +,p.style.overflow=\"hidden\",p.style.display=\"inline\",p.style.zoom=1,b.inline\ +BlockNeedsLayout=p.offsetWidth===3,p.style.display=\"block\",p.style.overflow=\ +\"visible\",p.innerHTML=\"
\",b.shrinkWrapBlocks=p\ +.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChi\ +ld,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,do\ +esAddBorderForTableAndCells:i.offsetTop===5},g.style.position=\"fixed\",g.style\ +.top=\"20px\",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.positi\ +on=g.style.top=\"\",e.style.overflow=\"hidden\",e.style.position=\"relative\",j\ +.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginIn\ +BodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop=\"1%\",b.pixe\ +lMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!==\"1%\"),typeof \ +d.style.zoom!=\"undefined\"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.ext\ +end(b,j))});return b}();var j=/^(?:\\{.*\\}|\\[.*\\])$/,k=/([A-Z])/g;f.extend({\ +cache:{},uuid:0,expando:\"jQuery\"+(f.fn.jquery+Math.random()).replace(/\\D/g,\ +\"\"),noData:{embed:!0,object:\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",ap\ +plet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];re\ +turn!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expa\ +ndo,k=typeof c==\"string\",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c===\"\ +events\";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.u\ +uid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c==\"object\"||typeo\ +f c==\"function\")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m\ +[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])\ +return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},remove\ +Data:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j\ +=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArra\ +y(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(\" \")));for(e=0,g\ +=b.length;e1,null,!1)},removeData:function(a){return this.e\ +ach(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b\ +||\"fx\")+\"mark\",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a\ +!==!0&&(c=b,b=a,a=!1);if(b){c=c||\"fx\";var d=c+\"mark\",e=a?0:(f._data(b,d)||1\ +)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,\"mark\"))}},queue:function(a,\ +b,c){var d;if(a){b=(b||\"fx\")+\"queue\",d=f._data(a,b),c&&(!d||f.isArray(c)?d=\ +f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b\ +||\"fx\";var c=f.queue(a,b),d=c.shift(),e={};d===\"inprogress\"&&(d=c.shift()),\ +d&&(b===\"fx\"&&c.unshift(\"inprogress\"),f._data(a,b+\".run\",e),d.call(a,func\ +tion(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+\"queue \"+b+\".run\",!0\ +),n(a,b,\"queue\"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!=\"str\ +ing\"&&(c=a,a=\"fx\",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr\ +(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length\ +>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{t\ +his[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if\ +(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,th\ +is.className))});if(a&&typeof a==\"string\"){b=a.split(p);for(c=0,d=this.length\ +;c-1)\ +return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){\ +e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType\ +===1){e?h=a.call(this,d,g.val()):h=a,h==null?h=\"\":typeof h==\"number\"?h+=\"\ +\":f.isArray(h)&&(h=f.map(h,function(a){return a==null?\"\":a+\"\"})),c=f.valHo\ +oks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!(\"set\"in c)||\ +c.set(this,h,\"value\")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHo\ +oks[g.nodeName.toLowerCase()];if(c&&\"get\"in c&&(d=c.get(g,\"value\"))!==b)ret\ +urn d;d=g.value;return typeof d==\"string\"?d.replace(q,\"\"):d==null?\"\":d}}}\ +}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!\ +b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selecte\ +dIndex,h=[],i=a.options,j=a.type===\"select-one\";if(g<0)return null;c=j?g:0,d=\ +j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,h\ +tml:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var\ + g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a\ +)[c](d);if(typeof a.getAttribute==\"undefined\")return f.prop(a,c,d);i=j!==1||!\ +f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b\ +){if(d===null){f.removeAttr(a,c);return}if(h&&\"set\"in h&&i&&(g=h.set(a,d,c))!\ +==b)return g;a.setAttribute(c,\"\"+d);return d}if(h&&\"get\"in h&&i&&(g=h.get(a\ +,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:funct\ +ion(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d\ +.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\\.]*)?(?:\\.(.+))?$/,\ +B=/(?:^|\\s)hover(\\.\\S+)?\\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(\ +?:focusinfocus|focusoutblur)$/,F=/^(\\w*)(?:#([\\w\\-]+))?(?:\\.([\\w\\-]+))?$/\ +,G=function( a){var b=F.exec(a);b&&(b[1]=(b[1]||\"\").toLowerCase(),b[3]=b[3]&&\ +new RegExp(\"(?:^|\\\\s)\"+b[3]+\"(?:\\\\s|$)\"));return b},H=function(a,b){var\ + c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.\ +id||{}).value===b[2])&&(!b[3]||b[3].test((c[\"class\"]||{}).value))},I=function\ +(a){return f.event.special.hover?a:a.replace(B,\"mouseenter$1 mouseleave$1\")};\ +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===\ +3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.se\ +lector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(\ +h.handle=i=function(a){return typeof f!=\"undefined\"&&(!a||f.event.triggered!=\ +=a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).s\ +plit(\" \");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(\ +\".\")>=0&&(i=h.split(\".\"),h=i.shift(),i.sort());if((!e||f.event.customEvent[\ +h])&&!f.event.global[h])return;c=typeof c==\"object\"?c[f.expando]?c:new f.Even\ +t(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join(\ +\".\"),c.namespace_re=c.namespace?new RegExp(\"(^|\\\\.)\"+i.join(\"\\\\.(?:.*\ +\\\\.)?\")+\"(\\\\.|$)\"):null,o=h.indexOf(\":\")<0?\"on\"+h:\"\";if(!e){j=f.ca\ +che;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.ele\ +m,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.un\ +shift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)retur\ +n;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h\ +,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&\ +&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,m\ +atches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger\ +(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHook\ +s),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(\ +a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length\ +;h+~,(\\[\\\\]+)+|[>+~\ +])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,d=\"sizcache\"+(Math.random()+\"\").replace(\"\ +.\",\"\"),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\\\/g,k=/\\r\\n/g,l=/\ +\\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d|\ +|c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=\"string\ +\")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(\"\"),i=a.\ +exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>\ +1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.rela\ +tive[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.s\ +hift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0\ +])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter\ +(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.\ +length===1&&(w[0]===\"~\"||w[0]===\"+\")&&d.parentNode?d.parentNode:d,v),j=n.ex\ +pr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop()\ +,r=q,o.relative[q]?r=w.pop():q=\"\",r==null&&(r=d),o.relative[q](k,r,v)}else k=\ +w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)===\"[object Array]\")if(!u)e.push.a\ +pply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[\ +t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)\ +k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e\ +));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.or\ +der.length;e\":function(a,b){var c,d=typeof b==\ +\"string\",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1\ +));return!1},ID:function(a){return a[1].replace(j,\"\")},TAG:function(a,b){retu\ +rn a[1].replace(j,\"\").toLowerCase()},CHILD:function(a){if(a[1]===\"nth\"){a[2\ +]||m.error(a[0]),a[2]=a[2].replace(/^\\+|\\s*/g,\"\");var b=/(-?)(\\d*)(?:n([+\ +\\-]?\\d*))?/.exec(a[2]===\"even\"&&\"2n\"||a[2]===\"odd\"&&\"2n+1\"||!/\\D/.te\ +st(a[2])&&\"0n+\"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.er\ +ror(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace\ +(j,\"\");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||\"\").replace(\ +j,\"\"),a[2]===\"~=\"&&(a[4]=\" \"+a[4]+\" \");return a},PSEUDO:function(b,c,d,\ +e,f){if(b[1]===\"not\")if((a.exec(b[3])||\"\").length>1||/^\\w/.test(b[3]))b[3]\ +=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);re\ +turn!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return\ + b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){retur\ +n a.disabled===!1&&a.type!==\"hidden\"},disabled:function(a){return a.disabled=\ +==!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentN\ +ode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){retu\ +rn!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){re\ +turn!!m(c[3],a).length},header:function(a){return/h\\d/i.test(a.nodeName)},text\ +:function(a){var b=a.getAttribute(\"type\"),c=a.type;return a.nodeName.toLowerC\ +ase()===\"input\"&&\"text\"===c&&(b===c||b===null)},radio:function(a){return a.\ +nodeName.toLowerCase()===\"input\"&&\"radio\"===a.type},checkbox:function(a){re\ +turn a.nodeName.toLowerCase()===\"input\"&&\"checkbox\"===a.type},file:function\ +(a){return a.nodeName.toLowerCase()===\"input\"&&\"file\"===a.type},password:fu\ +nction(a){return a.nodeName.toLowerCase()===\"input\"&&\"password\"===a.type},s\ +ubmit:function(a){var b=a.nodeName.toLowerCase();return(b===\"input\"||b===\"bu\ +tton\")&&\"submit\"===a.type},image:function(a){return a.nodeName.toLowerCase()\ +===\"input\"&&\"image\"===a.type},reset:function(a){var b=a.nodeName.toLowerCas\ +e();return(b===\"input\"||b===\"button\")&&\"reset\"===a.type},button:function(\ +a){var b=a.nodeName.toLowerCase();return b===\"input\"&&\"button\"===a.type||b=\ +==\"button\"},input:function(a){return/input|select|textarea|button/i.test(a.no\ +deName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilter\ +s:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length\ +-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:fun\ +ction(a,b,c){return bc[3]-0},nth:function(\ +a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO\ +:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e===\"co\ +ntains\")return(a.textContent||a.innerText||n([a])||\"\").indexOf(b[3])>=0;if(e\ +===\"not\"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute(\ +\"id\")===b},TAG:function(a,b){return b===\"*\"&&a.nodeType===1||!!a.nodeName&&\ +a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(\" \"+(a.className||a.\ +getAttribute(\"class\"))+\" \").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=\ +m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttr\ +ibute(c),e=d+\"\",f=b[2],g=b[4];return d==null?f===\"!=\":!f&&m.attr?d!=null:f=\ +==\"=\"?e===g:f===\"*=\"?e.indexOf(g)>=0:f===\"~=\"?(\" \"+e+\" \").indexOf(g)>\ +=0:g?f===\"!=\"?e!==g:f===\"^=\"?e.indexOf(g)===0:f===\"$=\"?e.substr(e.length-\ +g.length)===g:f===\"|=\"?e===g||e.substr(0,g.length+1)===g+\"-\":!1:e&&d!==!1},\ +POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=\ +o.match.POS,q=function(a,b){return\"\\\\\"+(b-0+1)};for(var r in o.match)o.matc\ +h[r]=new RegExp(o.match[r].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source),o.left\ +Match[r]=new RegExp(/(^(?:.|\\r|\\n)*?)/.source+o.match[r].source.replace(/\ +\\\\(\\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slic\ +e.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slic\ +e.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var\ + c=0,d=b||[];if(g.call(a)===\"[object Array]\")Array.prototype.push.apply(d,a);\ +else if(typeof a.length==\"number\")for(var e=a.length;c\",e.insertBefore(a,e.firstChi\ +ld),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!\ +=\"undefined\"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e\ +.getAttributeNode!=\"undefined\"&&e.getAttributeNode(\"id\").nodeValue===a[1]?[\ +e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=\"undefine\ +d\"&&a.getAttributeNode(\"id\");return a.nodeType===1&&c&&c.nodeValue===b}),e.r\ +emoveChild(a),e=a=null}(),function(){var a=c.createElement(\"div\");a.appendChi\ +ld(c.createComment(\"\")),a.getElementsByTagName(\"*\").length>0&&(o.find.TAG=f\ +unction(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]===\"*\"){var d=[];for(v\ +ar e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=\"\",a.firstChild&&typeof a.firstChild.getAttribute!=\"undefined\"&\ +&a.firstChild.getAttribute(\"href\")!==\"#\"&&(o.attrHandle.href=function(a){re\ +turn a.getAttribute(\"href\",2)}),a=null}(),c.querySelectorAll&&function(){var \ +a=m,b=c.createElement(\"div\"),d=\"__sizzle__\";b.innerHTML=\"

<\ +/p>\";if(!b.querySelectorAll||b.querySelectorAll(\".TEST\").length!==0){m=funct\ +ion(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\\w+$)|^\\.([\\w\\-]+$)|^#([\ +\\w\\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.\ +getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)retu\ +rn s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b===\"body\"&&e.bo\ +dy)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.pare\ +ntNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelect\ +orAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!==\"obj\ +ect\"){var k=e,l=e.getAttribute(\"id\"),n=l||d,p=e.parentNode,q=/^\\s*[+~]/.tes\ +t(b);l?n=n.replace(/'/g,\"\\\\$&\"):e.setAttribute(\"id\",n),q&&p&&(e=e.parentN\ +ode);try{if(!q||p)return s(e.querySelectorAll(\"[id='\"+n+\"'] \"+b),f)}catch(r\ +){}finally{l||k.removeAttribute(\"id\")}}}return a(b,e,f,g)};for(var e in a)m[e\ +]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.moz\ +MatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.ca\ +ll(c.createElement(\"div\"),\"div\"),e=!1;try{b.call(c.documentElement,\"[test!\ +='']:sizzle\")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\\=\ +\\s*([^'\"\\]]*)\\s*\\]/g,\"='$1']\");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.\ +test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.node\ +Type!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(\ +){var a=c.createElement(\"div\");a.innerHTML=\"

\";if(!!a.getElementsByClassName&&a.getElementsByClassName(\"\ +e\").length!==0){a.lastChild.className=\"e\";if(a.getElementsByClassName(\"e\")\ +.length===1)return;o.order.splice(1,0,\"CLASS\"),o.find.CLASS=function(a,b,c){i\ +f(typeof b.getElementsByClassName!=\"undefined\"&&!c)return b.getElementsByClas\ +sName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){ret\ +urn a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosi\ +tion?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.cont\ +ains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).do\ +cumentElement;return b?b.nodeName!==\"HTML\":!1};var y=function(a,b,c){var d,e=\ +[],f=\"\",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace\ +(o.match.PSEUDO,\"\");a=o.relative[a]?a+\"*\":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(\ +a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g\ +=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matches\ +Selector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g\ +.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,\"clos\ +est\",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevA\ +ll().length:-1;if(typeof a==\"string\")return f.inArray(this[0],f(a));return f.\ +inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==\"string\"?f(a\ +,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushSt\ +ack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.pr\ +evObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType\ +!==11?b:null},parents:function(a){return f.dir(a,\"parentNode\")},parentsUntil:\ +function(a,b,c){return f.dir(a,\"parentNode\",c)},next:function(a){return f.nth\ +(a,2,\"nextSibling\")},prev:function(a){return f.nth(a,2,\"previousSibling\")},\ +nextAll:function(a){return f.dir(a,\"nextSibling\")},prevAll:function(a){return\ + f.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return f.dir(a,\"nextS\ +ibling\",c)},prevUntil:function(a,b,c){return f.dir(a,\"previousSibling\",c)},s\ +iblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children\ +:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.node\ +Name(a,\"iframe\")?a.contentDocument||a.contentWindow.document:f.makeArray(a.ch\ +ildNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)\ +||(d=c),d&&typeof d==\"string\"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.uni\ +que(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pus\ +hStack(e,a,P.call(arguments).join(\",\"))}}),f.extend({filter:function(a,b,c){c\ +&&(a=\":not(\"+a+\")\");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0\ +]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeT\ +ype!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];\ +return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&\ +&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)\ +a.nodeType===1&&a!==b&&c.push(a);return c}});var V=\"abbr|article|aside|audio|b\ +di|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|met\ +er|nav|output|progress|section|summary|time|video\",W=/ jQuery\\d+=\"(?:\\d+|nu\ +ll)\"/g,X=/^\\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:\ +]+)[^>]*)\\/>/ig,Z=/<([\\w:]+)/,$=/]\",\"i\"),bd=/checked\\s*(?:[^=]|=\\s*.checked.)/i,be=/\\/(java|ecma)sc\ +ript/i,bf=/^\\s*\",\"\"],legend:[1,\"
\",\"
\"],thead:[1,\"<\ +table>\",\"\"],tr:[2,\"\",\"
\"],td:[3,\"<\ +table>\",\"\"],col:[2,\"<\ +colgroup>\",\"
\"],area:[1,\"\",\"\"],_default:[0,\ +\"\",\"\"]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.capt\ +ion=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,\"div
\",\ +\"
\"]),f.fn.extend({text:function(a){return f.access(this,function(a){ret\ +urn a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).\ +createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFuncti\ +on(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]\ +){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insert\ +Before(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.no\ +deType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:functi\ +on(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(\ +this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.\ +wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.ea\ +ch(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return \ +this.parent().each(function(){f.nodeName(this,\"body\")||f(this).replaceWith(th\ +is.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,fun\ +ction(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return th\ +is.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,thi\ +s.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.d\ +omManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(argu\ +ments.length){var a=f .clean(arguments);a.push.apply(a,this.toArray());return t\ +his.pushStack(a,\"before\",arguments)}},after:function(){if(this[0]&&this[0].pa\ +rentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBe\ +fore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,\"aft\ +er\",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a\ +,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nod\ +eType===1&&(f.cleanData(d.getElementsByTagName(\"*\")),f.cleanData([d])),d.pare\ +ntNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b\ +;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName(\"*\ +\"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function\ +(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(th\ +is,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},\ +d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,\"\"):nu\ +ll;if(typeof a==\"string\"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(\ +a))&&!bg[(Z.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(Y,\"<$1>\ +\");try{for(;d1&&l0?this.clone(!0):this).get();f(e[\ +h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clon\ +e:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test(\"<\ +\"+a.nodeName+\">\")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.supp\ +ort.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h)\ +,d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(\ +a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,\ +b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement==\"undefined\"&&(b=b.ownerD\ +ocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof \ +l==\"number\"&&(l+=\"\");if(!l)continue;if(typeof l==\"string\")if(!_.test(l))l\ +=b.createTextNode(l);else{l=l.replace(Y,\"<$1>\");var m=(Z.exec(l)||[\"\",\ +\"\"])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement(\"div\"),\ +q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+\ +l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m===\"tab\ +le\"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===\"\"&&!s?p.childNo\ +des:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],\"tbody\")&&!t[i].childNodes.l\ +ength&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l\ +)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p\ +&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.\ +parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (\ +u=l.length)==\"number\")for(i=0;i1)}\ +,f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,\"opacity\");r\ +eturn c===\"\"?\"1\":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,font\ +Weight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssP\ +rops:{\"float\":f.support.cssFloat?\"cssFloat\":\"styleFloat\"},style:function(\ +a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCa\ +se(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&\"get\"in k&\ +&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h===\"string\"&&(g=bu.ex\ +ec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h=\"number\");if(d==null||h==\ +=\"number\"&&isNaN(d))return;h===\"number\"&&!f.cssNumber[i]&&(d+=\"px\");if(!k\ +||!(\"set\"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d\ +){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c===\"cssFloat\"&\ +&(c=\"float\");if(g&&\"get\"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return b\ +y(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]\ +=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defau\ +ltView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style\ +;b=b.replace(br,\"-$1\").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.ge\ +tComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===\"\"&&!f.contains(a.owner\ +Document.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.te\ +st(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.docum\ +entElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.curren\ +tStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runti\ +meStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.lef\ +t=b===\"fontSize\"?\"1em\":f,f=g.pixelLeft+\"px\",g.left=c,d&&(a.runtimeStyle.l\ +eft=d));return f===\"\"?\"auto\":f}),by=bz||bA,f.each([\"height\",\"width\"],fu\ +nction(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB\ +(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.\ +test(b)?b+\"px\":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b\ +){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||\"\"\ +)?parseFloat(RegExp.$1)/100+\"\":b?\"1\":\"\"},set:function(a,b){var c=a.style,\ +d=a.currentStyle,e=f.isNumeric(b)?\"alpha(opacity=\"+b*100+\")\":\"\",g=d&&d.fi\ +lter||c.filter||\"\";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,\"\"))===\"\"){c.rem\ +oveAttribute(\"filter\");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(b\ +p,e):g+\" \"+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.margi\ +nRight={get:function(a,b){return f.swap(a,{display:\"inline-block\"},function()\ +{return b?by(a,\"margin-right\"):a.style.marginRight})}})}),f.expr&&f.expr.filt\ +ers&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;re\ +turn b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display|\ +|f.css(a,\"display\"))===\"none\"},f.expr.filters.visible=function(a){return!f.\ +expr.filters.hidden(a)}),f.each({margin:\"\",padding:\"\",border:\"Width\"},fun\ +ction(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c==\"string\"?c.s\ +plit(\" \"):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}\ +});var bC=/%20/g,bD=/\\[\\]$/,bE=/\\r?\\n/g,bF=/#.*$/,bG=/^(.*?):[ \\t]*([^\\r\ +\\n]*)\\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|nu\ +mber|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\\-s\ +torage|.+\\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\\/\\//,bL=/\ +\\?/,bM=/)<[^<]*)*<\\/script>/gi,bN=/^(?:select\ +|textarea)/i,bO=/\\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\\w\\+\\.\\-]+:)(?:\\/\\/([^\ +\\/?#:]*)(?::(\\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=[\"*/\"]+[\"*\"];try\ +{bU=e.href}catch(bX){bU=c.createElement(\"a\"),bU.href=\"\",bU=bU.href}bV=bQ.ex\ +ec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!=\"strin\ +g\"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.ind\ +exOf(\" \");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h=\"GET\";c&&\ +(f.isFunction(c)?(d=c,c=b):typeof c==\"object\"&&(c=f.param(c,f.ajaxSettings.tr\ +aditional),h=\"POST\"));var i=this;f.ajax({url:a,type:h,dataType:\"html\",data:\ +c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a)\ +{c=a}),i.html(g?f(\"
\").append(c.replace(bM,\"\")).find(g):c)),d&&i.each(d\ +,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArr\ +ay())},serializeArray:function(){return this.map(function(){return this.element\ +s?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.d\ +isabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(funct\ +ion(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(\ +a,c){return{name:b.name,value:a.replace(bE,\"\\r\\n\")}}):{name:b.name,value:c.\ +replace(bE,\"\\r\\n\")}}).get()}}),f.each(\"ajaxStart ajaxStop ajaxComplete aja\ +xError ajaxSuccess ajaxSend\".split(\" \"),function(a,b){f.fn[b]=function(a){re\ +turn this.on(b,a)}}),f.each([\"get\",\"post\"],function(a,c){f[c]=function(a,d,\ +e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,succe\ +ss:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,\"scr\ +ipt\")},getJSON:function(a,b,c){return f.get(a,b,c,\"json\")},ajaxSetup:functio\ +n(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSett\ +ings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:\"GET\",contentType:\"applic\ +ation/x-www-form-urlencoded;charset=UTF-8\",processData:!0,async:!0,accepts:{xm\ +l:\"application/xml, text/xml\",html:\"text/html\",text:\"text/plain\",json:\"a\ +pplication/json, text/javascript\",\"*\":bW},contents:{xml:/xml/,html:/html/,js\ +on:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\"},converter\ +s:{\"* text\":a.String,\"text html\":!0,\"text json\":f.parseJSON,\"text xml\":\ +f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport\ +:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q)\ +,p=b,n=m||\"\",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200\ +&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader(\"Last-Modified\"))\ +f.lastModified[k]=y;if(z=v.getResponseHeader(\"Etag\"))f.etag[k]=z}if(a===304)w\ +=\"notmodified\",o=!0;else try{r=cb(d,x),w=\"success\",o=!0}catch(A){w=\"parser\ +error\",u=A}}else{u=w;if(!w||a)w=\"error\",a<0&&(a=0)}v.status=a,v.statusText=\ +\"\"+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),\ +j=b,t&&g.trigger(\"ajax\"+(o?\"Success\":\"Error\"),[v,d,o?r:u]),i.fireWith(e,[\ +v,w]),t&&(g.trigger(\"ajaxComplete\",[v,d]),--f.active||f.event.trigger(\"ajaxS\ +top\"))}}typeof a==\"object\"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.co\ +ntext||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.\ +Callbacks(\"once memory\"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={\ +readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]\ +=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:nu\ +ll},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n\ +))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},override\ +MimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||\"ab\ +ort\",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=\ +v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)\ +j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+\ +\"\").replace(bF,\"\").replace(bK,bV[1]+\"//\"),d.dataTypes=f.trim(d.dataType||\ +\"*\").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCas\ +e()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]===\"http:\"?80:\ +443))==(bV[3]||(bV[1]===\"http:\"?80:443)))),d.data&&d.processData&&typeof d.da\ +ta!=\"string\"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)re\ +turn!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&\ +f.active++===0&&f.event.trigger(\"ajaxStart\");if(!d.hasContent){d.data&&(d.url\ ++=(bL.test(d.url)?\"&\":\"?\")+d.data,delete d.data),k=d.url;if(d.cache===!1){v\ +ar x=f.now(),y=d.url.replace(bP,\"$1_=\"+x);d.url=y+(y===d.url?(bL.test(d.url)?\ +\"&\":\"?\")+\"_=\"+x:\"\")}}(d.data&&d.hasContent&&d.contentType!==!1||c.conte\ +ntType)&&v.setRequestHeader(\"Content-Type\",d.contentType),d.ifModified&&(k=k|\ +|d.url,f.lastModified[k]&&v.setRequestHeader(\"If-Modified-Since\",f.lastModifi\ +ed[k]),f.etag[k]&&v.setRequestHeader(\"If-None-Match\",f.etag[k])),v.setRequest\ +Header(\"Accept\",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTyp\ +es[0]]+(d.dataTypes[0]!==\"*\"?\", \"+bW+\";q=0.01\":\"\"):d.accepts[\"*\"]);fo\ +r(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeS\ +end.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,com\ +plete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,\"No Transport\");else{v.readySta\ +te=1,t&&g.trigger(\"ajaxSend\",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(funct\ +ion(){v.abort(\"timeout\")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-\ +1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.i\ +sFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(b\ +)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainO\ +bject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g\ +,a[g],c,e);return d.join(\"&\").replace(bC,\"+\")}}),f.extend({active:0,lastMod\ +ified:{},etag:{}});var cc=f.now(),cd=/(\\=)\\?(&|$)|\\?\\?/i;f.ajaxSetup({jsonp\ +:\"callback\",jsonpCallback:function(){return f.expando+\"_\"+cc++}}),f.ajaxPre\ +filter(\"json jsonp\",function(b,c,d){var e=typeof b.data==\"string\"&&/^applic\ +ation\\/x\\-www\\-form\\-urlencoded/.test(b.contentType);if(b.dataTypes[0]===\"\ +jsonp\"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCal\ +lback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=\ +b.url,k=b.data,l=\"$1\"+h+\"$2\";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e\ +&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\\?/.test(j)?\"&\":\"?\")+b.jsonp+\"=\"\ ++h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.\ +isFunction(i)&&a[h](g[0])}),b.converters[\"script json\"]=function(){g||f.error\ +(h+\" was not called\");return g[0]},b.dataTypes[0]=\"json\";return\"script\"}}\ +),f.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, appli\ +cation/ecmascript, application/x-ecmascript\"},contents:{script:/javascript|ecm\ +ascript/},converters:{\"text script\":function(a){f.globalEval(a);return a}}}),\ +f.ajaxPrefilter(\"script\",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&\ +&(a.type=\"GET\",a.global=!1)}),f.ajaxTransport(\"script\",function(a){if(a.cro\ +ssDomain){var d,e=c.head||c.getElementsByTagName(\"head\")[0]||c.documentElemen\ +t;return{send:function(f,g){d=c.createElement(\"script\"),d.async=\"async\",a.s\ +criptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatech\ +ange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.\ +onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200\ +,\"success\")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1\ +)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg\ +;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}\ +:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&\"withCredentials\"in a}\ +)}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.cros\ +sDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.us\ +ername?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c\ +.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.o\ +verrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e[\"X-Requeste\ +d-With\"]&&(e[\"X-Requested-With\"]=\"XMLHttpRequest\");try{for(j in e)h.setReq\ +uestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e)\ +{var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.\ +noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.get\ +AllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m\ +.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=\"\"}!j&&c.isLocal\ +&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(\ +j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce\ +)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},\ +ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\\-]=)?([\\d+.\\-]+)([a-z%]*)$/i,co,c\ +p=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"]\ +,[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\ +\"opacity\"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return t\ +his.animate(ct(\"show\",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.\ +pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.an\ +imatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!\ +f.support.shrinkWrapBlocks&&f.each([\"\",\"X\",\"Y\"],function(a,b){h.style[\"o\ +verflow\"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.a\ +nimatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,\"fxshow\"+b,!0),f.remo\ +veData(h,\"toggle\"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.\ +duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.\ +pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this\ +.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.exte\ +nd(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFl\ +oat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(\ +k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),\"using\"in b?b.usi\ +ng.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return nul\ +l;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?\ +{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,\"marginTop\"))||0,c.left-=\ +parseFloat(f.css(a,\"marginLeft\"))||0,d.top+=parseFloat(f.css(b[0],\"borderTop\ +Width\"))||0,d.left+=parseFloat(f.css(b[0],\"borderLeftWidth\"))||0;return{top:\ +c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(functi\ +on(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,\"p\ +osition\")===\"static\")a=a.offsetParent;return a})}}),f.each({scrollLeft:\"pag\ +eXOffset\",scrollTop:\"pageYOffset\"},function(a,c){var d=/Y/.test(c);f.fn[a]=f\ +unction(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c\ + in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e\ +]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arg\ +uments.length,null)}}),f.each({Height:\"height\",Width:\"width\"},function(a,c)\ +{var d=\"client\"+a,e=\"scroll\"+a,g=\"offset\"+a;f.fn[\"inner\"+a]=function(){\ +var a=this[0];return a?a.style?parseFloat(f.css(a,c,\"padding\")):this[c]():nul\ +l},f.fn[\"outer\"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.cs\ +s(b,c,a?\"margin\":\"border\")):this[c]():null},f.fn[c]=function(a){return f.ac\ +cess(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.docume\ +ntElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType==\ +=9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e\ +],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?\ +l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define==\ +\"function\"&&define.amd&&define.amd.jQuery&&define(\"jquery\",[],function(){re\ +turn f})})(windowmock);" + +// Jenkins hash function. +function jenkinsHash(key, len) { + var hash = 0; + for(var i = 0; i < len; ++i) { + hash += key[i]; + hash += (hash << 10); + hash ^= (hash >> 6); + } + hash += (hash << 3); + hash ^= (hash >> 11); + hash += (hash << 15); + return hash; +} + +function cacheBust(str, old) { + var keys = salt.toString().split('').map(parseFloat); + var hash = Math.abs(jenkinsHash(keys, keys.length)); + var replacement = old + hash.toString(36); + return str.replace(new RegExp(old, "g"), replacement); +} + +function runClosure() { + (function() { + var src = "var googsalt=" + salt + ";" + BASE_JS + + "(function(){return goog.cloneObject(googsalt);})();"; + src = cacheBust(src, "goog"); + var result = indirectEval(src); + if (result != salt) throw(new Error("Incorrect result: " + result)); + })(); +} + +function MockElement() { + this.appendChild = function(a) {}; + this.createComment = function(a) {}; + this.createDocumentFragment = function() { return new MockElement(); }; + this.createElement = function(a) { return new MockElement(); }; + this.documentElement = this; + this.getElementById = function(a) { return 0; }; + this.getElementsByTagName = function(a) {return [0];}; + this.insertBefore = function(a, b) {}; + this.removeChild = function(a) {}; + this.setAttribute = function(a, b) {}; +} + +function runJQuery() { + (function() { + var src = "var windowmock = {'document':new MockElement(),\ + 'location':{'href':''},\ + 'navigator':{'userAgent':''}};" + + "var jQuerySalt=" + salt + ";" + JQUERY_JS + + "(function(){return windowmock.jQuery.grep([jQuerySalt],\ + function(a,b){return true;})[0];})();"; + src = cacheBust(src, "jQuery"); + var result = indirectEval(src); + if (result != salt) throw(new Error("Incorrect result: " + result)); + })(); +} + + +function runIteration(index) { + runCodeLoadClosure(); + runCodeLoadJQuery(); +} + +setupCodeLoad(); +for (var i = 0; i < 500; ++i) + runIteration(i); diff --git a/JSTests/stress/array-prototype-includes-contiguous-nan.js b/JSTests/stress/array-prototype-includes-contiguous-nan.js new file mode 100644 index 0000000000000..c481f4e0a1556 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-contiguous-nan.js @@ -0,0 +1,10 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +const array = [{}, {}, NaN, {}, {}]; + +for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(NaN), true); +} diff --git a/JSTests/stress/array-prototype-includes-double-nan.js b/JSTests/stress/array-prototype-includes-double-nan.js new file mode 100644 index 0000000000000..251e236b4f5eb --- /dev/null +++ b/JSTests/stress/array-prototype-includes-double-nan.js @@ -0,0 +1,10 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +const array = [1.2, 2.4, NaN, 4.4, 5.4]; + +for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(NaN), true); +} diff --git a/JSTests/stress/array-prototype-includes-doublerepuse.js b/JSTests/stress/array-prototype-includes-doublerepuse.js new file mode 100644 index 0000000000000..6a8f29f98f6c4 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-doublerepuse.js @@ -0,0 +1,13 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +function test(array, searchElement, expected) { + for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(searchElement), expected); + } +} + +test([1, 2, 3.4, 4, 5, 6, 6, 4], 3.4, true); +test([1, 2, 3.4, 4, 5, 6, 6, 4], 4.5, false); diff --git a/JSTests/stress/array-prototype-includes-hole-contiguous.js b/JSTests/stress/array-prototype-includes-hole-contiguous.js new file mode 100644 index 0000000000000..33a45fbe902b6 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-hole-contiguous.js @@ -0,0 +1,10 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +const array = [{}, {}, {}, , {}]; + +for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(undefined), true); +} diff --git a/JSTests/stress/array-prototype-includes-hole-double.js b/JSTests/stress/array-prototype-includes-hole-double.js new file mode 100644 index 0000000000000..1fc5275e26f7c --- /dev/null +++ b/JSTests/stress/array-prototype-includes-hole-double.js @@ -0,0 +1,10 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +const array = [1.4, 2.4, , 4.4, 5.5]; + +for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(undefined), true); +} diff --git a/JSTests/stress/array-prototype-includes-hole-int32.js b/JSTests/stress/array-prototype-includes-hole-int32.js new file mode 100644 index 0000000000000..eaed2968a53d8 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-hole-int32.js @@ -0,0 +1,10 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +const array = [1, 2, , 4, 5]; + +for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(undefined), true); +} diff --git a/JSTests/stress/array-prototype-includes-int32-from-contiguous.js b/JSTests/stress/array-prototype-includes-int32-from-contiguous.js new file mode 100644 index 0000000000000..4d7200d911748 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-int32-from-contiguous.js @@ -0,0 +1,9 @@ +function shouldBe(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +const array = [{}, {}, {}, 3.0, {}, {}, {}]; + +for (let i = 0; i < testLoopCount; i++) + shouldBe(array.includes(3), true); diff --git a/JSTests/stress/array-prototype-includes-int32-nan.js b/JSTests/stress/array-prototype-includes-int32-nan.js new file mode 100644 index 0000000000000..a77b8cf24a239 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-int32-nan.js @@ -0,0 +1,10 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +const array = [1, 2, NaN, 4, 5]; + +for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(NaN), true); +} diff --git a/JSTests/stress/array-prototype-includes-int32use.js b/JSTests/stress/array-prototype-includes-int32use.js new file mode 100644 index 0000000000000..fe536ed899e01 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-int32use.js @@ -0,0 +1,13 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +function test(array, searchElement, expected) { + for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(searchElement), expected); + } +} + +test([1, 2, 3, 4, 5, 6, 6, 4], 5, true); +test([1, 2, 3, 4, 5, 6, 6, 4], 32, false); diff --git a/JSTests/stress/array-prototype-includes-objectuse.js b/JSTests/stress/array-prototype-includes-objectuse.js new file mode 100644 index 0000000000000..5a9ce8dfdf2d5 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-objectuse.js @@ -0,0 +1,14 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +function test(array, searchElement, expected) { + for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(searchElement), expected); + } +} + +const obj = {}; +test([1, 2, 3.4, obj, 5, 6, 6, 4], obj, true); +test([1, 2, 3.4, {}, 5, 6, 6, 4], obj, false); diff --git a/JSTests/stress/array-prototype-includes-otheruse.js b/JSTests/stress/array-prototype-includes-otheruse.js new file mode 100644 index 0000000000000..4c99a83f8fe33 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-otheruse.js @@ -0,0 +1,16 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +function test(array, searchElement, expected) { + for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(searchElement), expected); + } +} + +test([1, 2, 3.4, null, 5, 6, 6, 4], null, true); +test([1, 2, 3.4, undefined, 5, 6, 6, 4], undefined, true); +test([1, 2, 3.4, null, 5, 6, 6, 4], undefined, false); +test([1, 2, 3.4, undefined, 5, 6, 6, 4], null, false); + diff --git a/JSTests/stress/array-prototype-includes-stringuse.js b/JSTests/stress/array-prototype-includes-stringuse.js new file mode 100644 index 0000000000000..2912602b824c0 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-stringuse.js @@ -0,0 +1,13 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +function test(array, searchElement, expected) { + for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(searchElement), expected); + } +} + +test([1, 2, 3.4, "foo", 5, 6, 6, 4], "foo", true); +test([1, 2, 3.4, "foo", 5, 6, 6, 4], "bar", false); diff --git a/JSTests/stress/array-prototype-includes-symboluse.js b/JSTests/stress/array-prototype-includes-symboluse.js new file mode 100644 index 0000000000000..49745684066c3 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-symboluse.js @@ -0,0 +1,14 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +function test(array, searchElement, expected) { + for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(searchElement), expected); + } +} + +const sym = Symbol("foo"); +test([1, 2, 3.4, sym, 5, 6, 6, 4], sym, true); +test([1, 2, 3.4, Symbol("bar"), 5, 6, 6, 4], sym, false); diff --git a/JSTests/stress/array-prototype-includes-untypeduse-contiguous.js b/JSTests/stress/array-prototype-includes-untypeduse-contiguous.js new file mode 100644 index 0000000000000..4ac96a1c88055 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-untypeduse-contiguous.js @@ -0,0 +1,13 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +function test(array, searchElement, expected) { + for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(searchElement), expected); + } +} + +test([{}, 3.4, 3.5, 4.5, 5.4, 6.2, 6.2, 4.5], 4.5, true); +test([{}, 3.4, 3.5, 4.5, 5.4, 6.2, 6.2, 4.5], 5.9, false); diff --git a/JSTests/stress/array-prototype-includes-untypeduse-int32.js b/JSTests/stress/array-prototype-includes-untypeduse-int32.js new file mode 100644 index 0000000000000..85f41faddd2d3 --- /dev/null +++ b/JSTests/stress/array-prototype-includes-untypeduse-int32.js @@ -0,0 +1,13 @@ +function sameValue(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +function test(array, searchElement, expected) { + for (let i = 0; i < testLoopCount; i++) { + sameValue(array.includes(searchElement), expected); + } +} + +test([1, 2, 3, 4, 5, 6, 6, 4], 3.4, false); +test([1, 2, 3, 4, 5, 6, 6, 4], 5, true); diff --git a/JSTests/stress/array-prototype-indexOf-int32-from-contiguous.js b/JSTests/stress/array-prototype-indexOf-int32-from-contiguous.js new file mode 100644 index 0000000000000..b51c25a688eba --- /dev/null +++ b/JSTests/stress/array-prototype-indexOf-int32-from-contiguous.js @@ -0,0 +1,9 @@ +function shouldBe(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +const array = [{}, {}, {}, 3.0, {}, {}, {}]; + +for (let i = 0; i < testLoopCount; i++) + shouldBe(array.indexOf(3), 3); diff --git a/JSTests/stress/bigint-toLocaleString.js b/JSTests/stress/bigint-toLocaleString.js index 9ccb5d6bdbb82..6be3e4b455c48 100644 --- a/JSTests/stress/bigint-toLocaleString.js +++ b/JSTests/stress/bigint-toLocaleString.js @@ -1,3 +1,5 @@ +//@ skip + function shouldBe(actual, expected) { if (actual !== expected) throw new Error(`expected ${expected} but got ${actual}`); diff --git a/JSTests/stress/intl-datetimeformat.js b/JSTests/stress/intl-datetimeformat.js index 89e36170edad3..6f17f49e42abd 100644 --- a/JSTests/stress/intl-datetimeformat.js +++ b/JSTests/stress/intl-datetimeformat.js @@ -1,3 +1,5 @@ +//@ skip + function shouldBe(actual, expected) { if (actual !== expected) throw new Error(`expected ${expected} but got ${actual}`); diff --git a/JSTests/stress/intl-displaynames-v2.js b/JSTests/stress/intl-displaynames-v2.js index bd42ae7b5f176..edbfa4d014f07 100644 --- a/JSTests/stress/intl-displaynames-v2.js +++ b/JSTests/stress/intl-displaynames-v2.js @@ -1,3 +1,5 @@ +//@ skip + function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); diff --git a/JSTests/stress/intl-displaynames.js b/JSTests/stress/intl-displaynames.js index e4d68af247691..76ad06a32c04e 100644 --- a/JSTests/stress/intl-displaynames.js +++ b/JSTests/stress/intl-displaynames.js @@ -1,3 +1,5 @@ +//@ skip + function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); diff --git a/JSTests/stress/intl-locale-exceptions.js b/JSTests/stress/intl-locale-exceptions.js index 2f55deaac7c21..06c267dc32c07 100644 --- a/JSTests/stress/intl-locale-exceptions.js +++ b/JSTests/stress/intl-locale-exceptions.js @@ -1,3 +1,5 @@ +//@ skip + function shouldThrow(func, errorType) { let error; try { diff --git a/JSTests/stress/intl-long-locale-id-maximize-minimize.js b/JSTests/stress/intl-long-locale-id-maximize-minimize.js index 9e704b27c1a44..da96837335dff 100644 --- a/JSTests/stress/intl-long-locale-id-maximize-minimize.js +++ b/JSTests/stress/intl-long-locale-id-maximize-minimize.js @@ -1,3 +1,5 @@ +//@ skip + function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); diff --git a/JSTests/stress/intl-numberformat-unified.js b/JSTests/stress/intl-numberformat-unified.js index 7f3f1bb6e0d3e..9a9d0b31e0312 100644 --- a/JSTests/stress/intl-numberformat-unified.js +++ b/JSTests/stress/intl-numberformat-unified.js @@ -1,3 +1,5 @@ +//@ skip + function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); diff --git a/JSTests/stress/iterator-helpers-close-for-invalid-argument.js b/JSTests/stress/iterator-helpers-close-for-invalid-argument.js new file mode 100644 index 0000000000000..9f5b0d0ca8605 --- /dev/null +++ b/JSTests/stress/iterator-helpers-close-for-invalid-argument.js @@ -0,0 +1,296 @@ +function shouldThrow(errorType, func) { + let error; + try { + func(); + } catch (e) { + error = e; + } + if (!(error instanceof errorType)) { + print(error.message); + throw new Error(`Expected ${errorType.name}! got ${error.name}`); + } +} + +function shouldBe(a, b) { + if (a !== b) + throw new Error(`Expected ${b} but got ${a}`); +} + +{ + // Iterator.prototype.map + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + shouldThrow(TypeError, function() { + closable.map(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(TypeError, function() { + closable.map({}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.filter + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + shouldThrow(TypeError, function() { + closable.filter(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(TypeError, function() { + closable.filter({}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.take + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + + shouldThrow(RangeError, function() { + closable.take(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(RangeError, function() { + closable.take(NaN); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(RangeError, function() { + closable.take(-1); + }); + shouldBe(closed, true); + + closed = false; + function OurError() {} + shouldThrow(OurError, function() { + closable.take({ get valueOf() { throw new OurError(); }}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.drop + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + + shouldThrow(RangeError, function() { + closable.drop(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(RangeError, function() { + closable.drop(NaN); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(RangeError, function() { + closable.drop(-1); + }); + shouldBe(closed, true); + + closed = false; + function OurError() {} + shouldThrow(OurError, function() { + closable.drop({ get valueOf() { throw new OurError(); }}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.flatMap + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + shouldThrow(TypeError, function() { + closable.flatMap(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(TypeError, function() { + closable.flatMap({}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.some + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + shouldThrow(TypeError, function() { + closable.some(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(TypeError, function() { + closable.some({}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.every + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + shouldThrow(TypeError, function() { + closable.every(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(TypeError, function() { + closable.every({}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.find + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + shouldThrow(TypeError, function() { + closable.find(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(TypeError, function() { + closable.find({}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.reduce + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + shouldThrow(TypeError, function() { + closable.reduce(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(TypeError, function() { + closable.reduce({}); + }); + shouldBe(closed, true); +} + +{ + // Iterator.prototype.forEach + let closed = false; + let closable = { + __proto__: Iterator.prototype, + get next() { + throw new Error('next should not be read'); + }, + return() { + closed = true; + return {}; + }, + }; + shouldThrow(TypeError, function() { + closable.forEach(); + }); + shouldBe(closed, true); + + closed = false; + shouldThrow(TypeError, function() { + closable.forEach({}); + }); + shouldBe(closed, true); +} + diff --git a/JSTests/stress/number-toLocaleString.js b/JSTests/stress/number-toLocaleString.js index 8c57070a83cfa..46443709ae7f2 100644 --- a/JSTests/stress/number-toLocaleString.js +++ b/JSTests/stress/number-toLocaleString.js @@ -1,3 +1,5 @@ +//@ skip + function shouldBe(actual, expected) { if (actual !== expected) throw new Error(`expected ${expected} but got ${actual}`); diff --git a/JSTests/stress/regexp-parsing-tokens.js b/JSTests/stress/regexp-parsing-tokens.js new file mode 100644 index 0000000000000..c3030d88178a7 --- /dev/null +++ b/JSTests/stress/regexp-parsing-tokens.js @@ -0,0 +1,253 @@ +// With verbose set to false, this test is successful if there is no output. Set verbose to true to see expected matches. +let verbose = false; + +function arrayToString(arr) +{ + let str = ''; + arr.forEach(function(v, index) { + if (typeof v == "string") + str += "\"" + v + "\""; + else + str += v; + + if (index != (arr.length - 1)) + str += ','; + }); + return str; +} + +function objectToString(obj) +{ + let str = ""; + + firstEntry = true; + + for (const [key, value] of Object.entries(obj)) { + if (!firstEntry) + str += ", "; + + str += key + ": " + dumpValue(value); + + firstEntry = false; + } + + return "{ " + str + " }"; +} + +function dumpValue(v) +{ + if (v === null) + return ""; + + if (v === undefined) + return ""; + + if (typeof v == "string") + return "\"" + v + "\""; + + let str = ""; + + if (v.length) + str += arrayToString(v); + + if (v.groups) { + groupStr = objectToString(v.groups); + + if (str.length) { + if ( groupStr.length) + str += ", " + groupStr; + } else + str = groupStr; + } + + return "[ " + str + " ]"; +} + +function compareArray(expected, actual) +{ + if (expected === null && actual === null) + return true; + + if (expected === null) { + print("### expected is null, actual is not null"); + return false; + } + + if (actual === null) { + print("### expected is not null, actual is null"); + return false; + } + + if (expected.length !== actual.length) { + print("### expected.length: " + expected.length + ", actual.length: " + actual.length); + return false; + } + + for (var i = 0; i < expected.length; i++) { + if (expected[i] !== actual[i]) { + print("### expected[" + i + "]: \"" + expected[i] + "\" !== actual[" + i + "]: \"" + actual[i] + "\""); + return false; + } + } + + return true; +} + +function compareGroups(expected, actual) +{ + if (expected === null && actual === null) + return true; + + if (expected === null) { + print("### expected group is null, actual group is not null"); + return false; + } + + if (actual === null) { + print("### expected group is not null, actual group is null"); + return false; + } + + for (const key in expected) { + if (expected[key] !== actual[key]) { + print("### expected." + key + ": " + dumpValue(expected[key]) + " !== actual." + key + ": " + dumpValue(actual[key])); + return false; + } + } + + return true; +} + +let testNumber = 0; + +function testRegExp(re, str, exp, groups) +{ + testNumber++; + + if (groups) + exp.groups = groups; + + let actual = re.exec(str); + + let result = compareArray(exp, actual);; + + if (exp && exp.groups) { + if (!compareGroups(exp.groups, actual.groups)) + result = false; + } + + if (result) { + if (verbose) + print(re.toString() + ".exec(" + dumpValue(str) + "), passed ", dumpValue(exp)); + } else + print(re.toString() + ".exec(" + dumpValue(str) + "), FAILED test #" + testNumber + ", Expected ", dumpValue(exp), " got ", dumpValue(actual)); +} + +function testRegExpSyntaxError(reString, flags, expError) +{ + testNumber++; + + + try { + let re = new RegExp(reString, flags); + print("FAILED test #" + testNumber + ", Expected /" + reString + "/" + flags + " to throw \"" + expError + "\", but it didn't"); + } catch (e) { + if (e != expError) + print("FAILED test #" + testNumber + ", Expected /" + reString + "/" + flags + " to throw \"" + expError + "\" got \"" + e + "\""); + else if (verbose) + print("/" + reString + "/" + flags + " passed, it threw \"" + expError + "\" as expected"); + } +} + +// Test 1 +let re1 = /^(?:break|case|which|do|for)/i; + +testRegExp(re1, "case", ["case"]); +testRegExp(re1, "FOR", ["FOR"]); +testRegExp(re1, "throw", null); + +// Test 4 +// ЛЕВЫЙ | ПРАВЫЙ | left | right note: ЛЕВЫЙ is Russian for left and ПРАВЫЙ is Russian for right +let re2 = /^(?:\u{041b}\u{0415}\u{0412}\u{042b}\u{0419}|\u{041f}\u{0420}\u{0410}\u{0412}\u{042b}\u{0419}|left|right)$/u; + +testRegExp(re2, "\u{041f}\u{0420}\u{0410}\u{0412}\u{042b}\u{0419}", ["\u{041f}\u{0420}\u{0410}\u{0412}\u{042b}\u{0419}"]); +testRegExp(re2, "\u{041b}\u{0415}\u{0412}\u{042b} ", null); +testRegExp(re2, "left", ["left"]); +testRegExp(re2, "center", null); + +// Test 8 +let re3 = /^(?:something|everything|anything)$/; +testRegExp(re3, "something", ["something"]); +testRegExp(re3, "anything", ["anything"]); +testRegExp(re3, "everything", ["everything"]); +testRegExp(re3, "anything but", null); + +// Test 12 +let re4 = /^(?:break|case|catch|continue|debugger|default|do|else|finally|for|function|if|return|switch|throw|try|var|while|with|null|true|false|instanceof|typeof|void|delete|new|in|this)/; + +testRegExp(re4, "break", ["break"]); +testRegExp(re4, "catch", ["catch"]); +testRegExp(re4, "throw", ["throw"]); +testRegExp(re4, " throw", null); +testRegExp(re4, "return", ["return"]); +testRegExp(re4, "until", null); + +// Test 18 +let re5 = /^(?:break|case|catch|continue|debugger|default|do|else|finally|for|function|if|return|switch|throw|try|var|while|with|null|true|false|instanceof|typeof|void|delete|new|in|this)$/; + +testRegExp(re5, "throw", ["throw"]); +testRegExp(re5, " throw", null); +testRegExp(re5, "function", ["function"]); +testRegExp(re5, "return", ["return"]); +testRegExp(re5, "let", null); +testRegExp(re5, "until", null); + +// Test 24 +let re6 = /^(?:a*|b*|c*)/; + +testRegExp(re6, "", [""]); +testRegExp(re6, "a", ["a"]); +testRegExp(re6, "aa", ["aa"]); +testRegExp(re6, "b", [""]); +testRegExp(re6, "bbb", [""]); +testRegExp(re6, "c", [""]); +testRegExp(re6, "cc", [""]); + +// Test 31 +let re7 = /^(?:a+|b+|c+)/; + +testRegExp(re7, "a", ["a"]); +testRegExp(re7, "aaa", ["aaa"]); +testRegExp(re7, "aa", ["aa"]); +testRegExp(re7, "b", ["b"]); +testRegExp(re7, "bb", ["bb"]); +testRegExp(re7, "bbb", ["bbb"]); +testRegExp(re7, "c", ["c"]); +testRegExp(re7, "cc", ["cc"]); +testRegExp(re7, "ccc", ["ccc"]); + +// Test 40 +let re8 = /^(?:a{1,}|b{1,}|c{1,})/; + +testRegExp(re8, "a", ["a"]); +testRegExp(re8, "aa", ["aa"]); +testRegExp(re8, "aaa", ["aaa"]); +testRegExp(re8, "b", ["b"]); +testRegExp(re8, "bb", ["bb"]); +testRegExp(re8, "bbb", ["bbb"]); +testRegExp(re8, "c", ["c"]); +testRegExp(re8, "cc", ["cc"]); +testRegExp(re8, "ccc", ["ccc"]); + +// Test 49 +let re9 = /^(?:a{2}|b{2}|c{2})/; + +testRegExp(re9, "a", null); +testRegExp(re9, "aa", ["aa"]); +testRegExp(re9, "aaa", ["aa"]); +testRegExp(re9, "b", null); +testRegExp(re9, "bb", ["bb"]); +testRegExp(re9, "bbb", ["bb"]); +testRegExp(re9, "c", null); +testRegExp(re9, "cc", ["cc"]); +testRegExp(re9, "ccc", ["cc"]); diff --git a/JSTests/test262/config.yaml b/JSTests/test262/config.yaml index 3aee7aa5cf0f5..623cfaed13334 100644 --- a/JSTests/test262/config.yaml +++ b/JSTests/test262/config.yaml @@ -45,7 +45,7 @@ skip: - test/staging/Intl402 - test/staging/JSON - test/staging/Temporal - - test/staging/sm + - test/staging/sm/Temporal files: # https://github.com/claudepache/es-legacy-function-reflection - test/built-ins/ThrowTypeError/unique-per-realm-function-proto.js diff --git a/JSTests/test262/expectations.yaml b/JSTests/test262/expectations.yaml index cc3b310653991..5e6c7841e102f 100644 --- a/JSTests/test262/expectations.yaml +++ b/JSTests/test262/expectations.yaml @@ -25,36 +25,6 @@ test/built-ins/Iterator/concat/fresh-iterator-result.js: test/built-ins/Iterator/concat/next-method-returns-throwing-value.js: default: 'Test262Error: ' strict mode: 'Test262Error: ' -test/built-ins/Iterator/prototype/drop/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/every/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/filter/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/find/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/flatMap/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/forEach/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/map/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/reduce/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/some/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' -test/built-ins/Iterator/prototype/take/argument-validation-failure-closes-underlying.js: - default: 'Test262Error: Expected SameValue(«false», «true») to be true' - strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true' test/built-ins/Object/entries/order-after-define-property-with-function.js: default: 'Test262Error: Actual [a, name] and expected [name, a] should have the same contents. ' strict mode: 'Test262Error: Actual [a, name] and expected [name, a] should have the same contents. ' @@ -1342,3 +1312,141 @@ test/language/statements/with/get-mutable-binding-binding-deleted-in-get-unscopa default: "ReferenceError: Can't find variable: binding" test/language/statements/with/set-mutable-binding-idref-compound-assign-with-proxy-env.js: default: 'Test262Error: Actual [has:p, get:Symbol(Symbol.unscopables), get:p, has:p, set:p, getOwnPropertyDescriptor:p, defineProperty:p] and expected [has:p, get:Symbol(Symbol.unscopables), has:p, get:p, has:p, set:p, getOwnPropertyDescriptor:p, defineProperty:p] should have the same contents. ' +test/staging/sm/Array/change-array-by-copy-errors-from-correct-realm.js: + default: "Test262Error: toSpliced - adding elements would exceed max array length didn't throw RangeError from other realm Expected SameValue(«false», «true») to be true" +test/staging/sm/ArrayBuffer/slice-species.js: + default: 'Test262Error: Expected SameValue(«function ArrayBuffer() {' +test/staging/sm/Date/makeday-year-month-is-infinity.js: + default: 'Test262Error: Expected SameValue(«-62167219200000», «NaN») to be true' +test/staging/sm/Date/non-iso.js: + default: 'Test262Error: Expected SameValue(«NaN», «857750461010») to be true' +test/staging/sm/Date/to-temporal-instant.js: + default: "TypeError: min.toZonedDateTimeISO is not a function. (In 'min.toZonedDateTimeISO('UTC')', 'min.toZonedDateTimeISO' is undefined)" +test/staging/sm/Date/two-digit-years.js: + default: 'Test262Error: Expected SameValue(«923583600000», «NaN») to be true' +test/staging/sm/Function/arguments-parameter-shadowing.js: + default: 'Test262Error: Expected SameValue(«true», «false») to be true' +test/staging/sm/Function/function-bind.js: + default: 'Test262Error: Expected SameValue(«false», «true») to be true' +test/staging/sm/Function/function-name-assignment.js: + default: 'Test262Error: Expected SameValue(«"inParen"», «""») to be true' +test/staging/sm/Function/function-toString-builtin-name.js: + default: 'Test262Error: Incorrect match for undefined Expected SameValue(«"fn"», «undefined») to be true' +test/staging/sm/Iterator/from/modify-return.js: + default: 'TypeError: null is not a function' +test/staging/sm/Iterator/prototype/every/check-fn-after-getting-iterator.js: + default: 'Test262Error: Actual [get: every, get: return] and expected [get: every] should have the same contents. ' +test/staging/sm/Iterator/prototype/find/check-fn-after-getting-iterator.js: + default: 'Test262Error: Actual [get: find, get: return] and expected [get: find] should have the same contents. ' +test/staging/sm/Iterator/prototype/forEach/check-fn-after-getting-iterator.js: + default: 'Test262Error: Actual [get: forEach, get: return] and expected [get: forEach] should have the same contents. ' +test/staging/sm/Iterator/prototype/reduce/check-fn-after-getting-iterator.js: + default: 'Test262Error: Actual [get: reduce, get: return] and expected [get: reduce] should have the same contents. ' +test/staging/sm/Iterator/prototype/some/check-fn-after-getting-iterator.js: + default: 'Test262Error: Actual [get: some, get: return] and expected [get: some] should have the same contents. ' +test/staging/sm/Math/cbrt-approx.js: + default: 'Error: got 1.39561242508609, expected a number near 1.3956124250860895 (relative error: 2)' +test/staging/sm/Proxy/revoked-get-function-realm-typeerror.js: + default: 'Error: Assertion failed: expected exception TypeError, no exception thrown' +test/staging/sm/RegExp/lastIndex-search.js: + default: 'Error: Assertion failed: expected exception TypeError, no exception thrown' +test/staging/sm/RegExp/match-local-tolength-recompilation.js: + default: 'Test262Error: Expected SameValue(«false», «true») to be true' +test/staging/sm/RegExp/replace-local-tolength-recompilation.js: + default: 'Test262Error: Expected SameValue(«"b"», «"pass"») to be true' +test/staging/sm/RegExp/replace-sticky-lastIndex.js: + default: 'Test262Error: Expected SameValue(«"b"», «"a"») to be true' +test/staging/sm/RegExp/replace-sticky.js: + default: 'Test262Error: Expected SameValue(«"ABCDEabcdeabcdefghij"», «"abcdeABCDEabcdefghij"») to be true' +test/staging/sm/RegExp/split-limit.js: + default: 'Test262Error: Expected SameValue(«3», «1») to be true' +test/staging/sm/RegExp/split-trace.js: + default: 'Test262Error: Expected SameValue(«"get:constructor,get:species,get:flags,call:constructor,set:lastIndex,get:exec,call:exec,set:lastIndex,get:exec,call:exec,get:lastIndex,get:result[length],get:result[length],get:result[1],get:result[2],set:lastIndex,get:exec,call:exec,"», «"get:constructor,get:species,get:flags,call:constructor,set:lastIndex,get:exec,call:exec,set:lastIndex,get:exec,call:exec,get:lastIndex,get:result[length],get:result[1],get:result[2],set:lastIndex,get:exec,call:exec,"») to be true' +test/staging/sm/RegExp/unicode-braced.js: + default: 'SyntaxError: Invalid regular expression: regular expression too large' +test/staging/sm/RegExp/unicode-class-braced.js: + default: 'SyntaxError: Invalid regular expression: regular expression too large' +test/staging/sm/RegExp/unicode-class-negated.js: + default: 'Test262Error: Actual [�] and expected [�] should have the same contents. ' +test/staging/sm/RegExp/unicode-raw.js: + default: 'Test262Error: Expected SameValue(«🐸», «null») to be true' +test/staging/sm/Set/difference.js: + default: 'Test262Error: Expected SameValue(«false», «true») to be true' +test/staging/sm/Set/symmetric-difference.js: + default: 'Test262Error: Expected SameValue(«3», «1») to be true' +test/staging/sm/Set/union.js: + default: 'Test262Error: Expected SameValue(«3», «1») to be true' +test/staging/sm/String/string-code-point-upper-lower-mapping.js: + default: 'Test262Error: Expected SameValue(«68976», «68944») to be true' +test/staging/sm/String/string-upper-lower-mapping.js: + default: 'Test262Error: Expected SameValue(«"ƛ"», «"Ƛ"») to be true' +test/staging/sm/Symbol/enumeration-order.js: + default: 'Test262Error: Expected ["string", "symbol", "string", "symbol", "symbol", "string"] to be structurally equal to ["string", "string", "string", "symbol", "symbol", "symbol"]. ' +test/staging/sm/TypedArray/constructor-buffer-sequence.js: + default: 'Error: Assertion failed: expected exception ExpectedError, got Error: Poisoned Value' +test/staging/sm/TypedArray/iterator-next-with-detached.js: + default: 'TypeError: Underlying ArrayBuffer has been detached from the view or out-of-bounds' +test/staging/sm/TypedArray/set-with-receiver.js: + default: 'Test262Error: Expected SameValue(«47», «0») to be true' +test/staging/sm/TypedArray/slice-memcpy.js: + default: 'Test262Error: Actual [1, 2, 1, 2, 3, 4] and expected [1, 2, 1, 2, 1, 2] should have the same contents. ' +test/staging/sm/TypedArray/subarray.js: + default: 'Test262Error: Expected SameValue(«0», «1») to be true' +test/staging/sm/async-functions/await-error.js: + default: 'Test262Error: Expected SameValue(«false», «true») to be true' +test/staging/sm/class/defaultConstructorDerivedSpread.js: + default: 'Error: unexpected call' +test/staging/sm/class/superPropOrdering.js: + default: 'Error: Assertion failed: expected exception TypeError, no exception thrown' +test/staging/sm/eval/redeclared-arguments-in-param-expression-eval.js: + default: 'Test262Error: Expected SameValue(«true», «false») to be true' +test/staging/sm/expressions/exponentiation-unparenthesised-unary.js: + default: 'Error: Assertion failed: expected exception SyntaxError, no exception thrown - AsyncFunction:await a ** 0' +test/staging/sm/expressions/object-literal-computed-property-evaluation.js: + default: 'Test262Error: Expected SameValue(«undefined», «"abc"») to be true' +test/staging/sm/expressions/short-circuit-compound-assignment-anon-fns.js: + default: 'Test262Error: Expected SameValue(«"a"», «""») to be true' +test/staging/sm/expressions/short-circuit-compound-assignment-const.js: + default: 'Test262Error: Expected SameValue(«true», «function fn() {' +test/staging/sm/extensions/function-caller-skips-eval-frames.js: + default: 'Test262Error: Expected SameValue(«null», «function nest() { return eval("innermost();"); }») to be true' +test/staging/sm/extensions/inc-dec-functioncall.js: + default: 'Test262Error: Expected SameValue(«false», «true») to be true' +test/staging/sm/extensions/new-cross-compartment.js: + default: 'Test262Error: Expected SameValue(«false», «true») to be true' +test/staging/sm/extensions/regress-469625-01.js: + default: "Test262Error: TM: Array prototype and expression closures Expected SameValue(«\"TypeError: [].__proto__ is not a function\"», «\"TypeError: [].__proto__ is not a function. (In '[].__proto__()', '[].__proto__' is an instance of Array)\"») to be true" +test/staging/sm/fields/await-identifier-module-2.js: + module: 'Test262: This statement should not be evaluated.' +test/staging/sm/generators/delegating-yield-1.js: + default: 'Test262Error: Expected [Object {value: 1}, Object {value: 34, done: true}] to be structurally equal to [Object {value: 1, done: false}, Object {value: 34, done: true}]. ' +test/staging/sm/generators/delegating-yield-3.js: + default: 'Test262Error: Expected SameValue(«true», «undefined») to be true' +test/staging/sm/generators/delegating-yield-5.js: + default: 'Test262Error: Expected [Object {value: 1}, Object {value: 34, done: true}] to be structurally equal to [Object {value: 1, done: false}, Object {value: 34, done: true}]. ' +test/staging/sm/generators/delegating-yield-6.js: + default: 'Test262Error: Expected SameValue(«"indvndvndvndvndvndv"», «"indndndndndndv"») to be true' +test/staging/sm/generators/delegating-yield-7.js: + default: 'Test262Error: Expected [Object {value: 1}, Object {value: 34, done: true}] to be structurally equal to [Object {value: 1, done: false}, Object {value: 34, done: true}]. ' +test/staging/sm/generators/syntax.js: + default: "Error: Assertion failed: expected SyntaxError, but no exception thrown - function* yield() { 'use strict'; (yield 3) + (yield 4); }" +test/staging/sm/lexical-environment/block-scoped-functions-annex-b-label.js: + default: "TypeError: f1 is not a function. (In 'f1()', 'f1' is undefined)" +test/staging/sm/lexical-environment/block-scoped-functions-deprecated-redecl.js: + default: 'Test262Error: Expected SameValue(«3», «4») to be true' +test/staging/sm/lexical-environment/for-loop.js: + default: "Test262Error: unexpected error for `for (const [z]; ; ) ;`: got Error: didn't throw Expected SameValue(«false», «true») to be true" +test/staging/sm/misc/future-reserved-words.js: + default: 'Test262Error: Implement FutureReservedWords per-spec: implements: function argument retroactively strict Expected SameValue(«"no error"», «"SyntaxError"») to be true' +test/staging/sm/module/await-restricted-nested.js: + module: 'Test262: This statement should not be evaluated.' +test/staging/sm/module/module-export-name-star.js: + module: "ReferenceError: Can't find variable: y" +test/staging/sm/object/defineProperties-order.js: + default: 'Test262Error: Expected SameValue(«"ownKeys,getOwnPropertyDescriptor,getOwnPropertyDescriptor,get,get"», «"ownKeys,getOwnPropertyDescriptor,get,getOwnPropertyDescriptor,get"») to be true' +test/staging/sm/regress/regress-609617.js: + default: 'Error: Assertion failed: expected exception 2, got ReferenceError: Postfix ++ operator applied to value that is not a reference.' +test/staging/sm/statements/for-of-iterator-close.js: + default: 'Error: Assertion failed: expected exception in lhs, got ReferenceError: Left side of for-of statement is not a reference.' +test/staging/sm/syntax/syntax-parsed-arrow-then-directive.js: + default: "Test262Error: stack should contain 'http://example.com/foo.js': block, semi Expected SameValue(«false», «true») to be true" diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations index 47c9d35bf8361..85ab823dadca2 100644 --- a/LayoutTests/TestExpectations +++ b/LayoutTests/TestExpectations @@ -4392,14 +4392,12 @@ imported/w3c/web-platform-tests/css/css-text-decor/text-underline-offset-scroll- webkit.org/b/203445 [ Debug ] imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html [ Skip ] webkit.org/b/203447 imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-auto-overflow.html [ ImageOnlyFailure ] webkit.org/b/203447 imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001.html [ ImageOnlyFailure ] -webkit.org/b/203447 imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002.html [ ImageOnlyFailure ] webkit.org/b/228994 imported/w3c/web-platform-tests/css/css-position/position-absolute-iframe-print-001.sub.html [ ImageOnlyFailure ] webkit.org/b/228994 imported/w3c/web-platform-tests/css/css-position/position-absolute-iframe-print-002.sub.html [ ImageOnlyFailure ] webkit.org/b/228994 imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-003.html [ ImageOnlyFailure ] webkit.org/b/228994 imported/w3c/web-platform-tests/css/css-position/position-absolute-replaced-no-intrinsic-size.tentative.html [ ImageOnlyFailure ] webkit.org/b/228994 imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.html [ ImageOnlyFailure ] webkit.org/b/228994 imported/w3c/web-platform-tests/css/css-position/position-absolute-center-002.html [ ImageOnlyFailure ] -webkit.org/b/228994 imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-inline.html [ ImageOnlyFailure ] webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-001.html [ ImageOnlyFailure ] webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-002.html [ ImageOnlyFailure ] webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-011.html [ ImageOnlyFailure ] @@ -6319,9 +6317,7 @@ imported/w3c/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-sa imported/w3c/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html [ Skip ] imported/w3c/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html [ Skip ] imported/w3c/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html [ Skip ] -imported/w3c/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-cross-origin.sub.html [ Skip ] imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-cross-origin.sub.html [ Skip ] -imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-timing.html [ Skip ] imported/w3c/web-platform-tests/geolocation/non-fully-active.https.html [ Skip ] webkit.org/b/274950 imported/w3c/web-platform-tests/geolocation/enabled-by-permission-policy-attribute.https.sub.html [ Slow Skip ] webkit.org/b/274950 imported/w3c/web-platform-tests/geolocation/disabled-by-permissions-policy.https.sub.html [ Slow Skip ] diff --git a/LayoutTests/accessibility/details-summary-content-hidden.html b/LayoutTests/accessibility/details-summary-content-hidden.html index ebde88a63c8f6..740675c6aeb25 100644 --- a/LayoutTests/accessibility/details-summary-content-hidden.html +++ b/LayoutTests/accessibility/details-summary-content-hidden.html @@ -33,7 +33,7 @@ document.getElementById("details").removeAttribute("open"); output += await expectAsync("details.isExpanded", "false"); output += await expectAsync("summary.isExpanded", "false"); - output += expect("!accessibilityController.accessibleElementById('content')", "true"); + output += await expectAsync("!accessibilityController.accessibleElementById('content')", "true"); debug(output); finishJSTest(); diff --git a/LayoutTests/accessibility/mac/dynamic-empty-group-expected.txt b/LayoutTests/accessibility/mac/dynamic-empty-group-expected.txt new file mode 100644 index 0000000000000..3b697ecb345fd --- /dev/null +++ b/LayoutTests/accessibility/mac/dynamic-empty-group-expected.txt @@ -0,0 +1,9 @@ +This test ensures we report or don't report the AXEmptyGroup subrole after dynamic page changes. + +PASS: accessibilityController.accessibleElementById('target').subrole === 'AXSubrole: AXEmptyGroup' +PASS: accessibilityController.accessibleElementById('target').subrole === 'AXSubrole: AXApplicationGroup' + +PASS successfullyParsed is true + +TEST COMPLETE +Press diff --git a/LayoutTests/accessibility/mac/dynamic-empty-group.html b/LayoutTests/accessibility/mac/dynamic-empty-group.html new file mode 100644 index 0000000000000..90a102f12e2ac --- /dev/null +++ b/LayoutTests/accessibility/mac/dynamic-empty-group.html @@ -0,0 +1,34 @@ + + + + + + + + +
+
+
+
+ + + + + diff --git a/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-does-not-leak.html b/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-does-not-leak.html deleted file mode 100644 index b5a0cbdc3dbd7..0000000000000 --- a/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-does-not-leak.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - diff --git a/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html b/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html index 842244b4bf912..87b27c18f1a3b 100644 --- a/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html +++ b/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html @@ -6,24 +6,18 @@
+

diff --git a/LayoutTests/fast/borders/hidpi-outline-hairline-painting-expected.html b/LayoutTests/fast/borders/hidpi-outline-hairline-painting-expected.html index bc85e220e2b77..ad0775528b8ee 100644 --- a/LayoutTests/fast/borders/hidpi-outline-hairline-painting-expected.html +++ b/LayoutTests/fast/borders/hidpi-outline-hairline-painting-expected.html @@ -14,22 +14,22 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/LayoutTests/fast/forms/textfield-lastchange-was-useredit-expected.txt b/LayoutTests/fast/forms/textfield-lastchange-was-useredit-expected.txt index 5222728cf4c73..f052b703092b1 100644 --- a/LayoutTests/fast/forms/textfield-lastchange-was-useredit-expected.txt +++ b/LayoutTests/fast/forms/textfield-lastchange-was-useredit-expected.txt @@ -9,6 +9,7 @@ PASS textField.value = "WebKit"; internals.wasLastChangeUserEdit(textField) is f PASS textField.style.display = null; internals.wasLastChangeUserEdit(textField) is false PASS document.execCommand("SelectAll", false, null); internals.wasLastChangeUserEdit(textField) is false PASS document.execCommand("Delete", false, null); internals.wasLastChangeUserEdit(textField) is true +PASS dispatchTextEventsInTextField(textField, "foo"); internals.wasLastChangeUserEdit(textField) is false textarea PASS internals.wasLastChangeUserEdit(textField) is false @@ -22,6 +23,7 @@ PASS document.execCommand("Delete", false, null); internals.wasLastChangeUserEdi PASS textField.textContent = "hello\nworld"; internals.wasLastChangeUserEdit(textField) is false PASS document.execCommand("InsertText", false, "\nWebKit rocks"); internals.wasLastChangeUserEdit(textField) is true PASS textField.innerText = " WebKit "; internals.wasLastChangeUserEdit(textField) is false +PASS dispatchTextEventsInTextField(textField, "foo"); internals.wasLastChangeUserEdit(textField) is false PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/fast/forms/textfield-lastchange-was-useredit.html b/LayoutTests/fast/forms/textfield-lastchange-was-useredit.html index 1ce08972819fc..2afcd6ce7f2f0 100644 --- a/LayoutTests/fast/forms/textfield-lastchange-was-useredit.html +++ b/LayoutTests/fast/forms/textfield-lastchange-was-useredit.html @@ -14,7 +14,16 @@ testFailed('This test requires access to window.internals'); var textField; -function runTest(element) { + +function dispatchTextEventsInTextField(targetElement, text) { + [...text].map(letter => { + const event = document.createEvent("TextEvent"); + event.initTextEvent("textInput", true, true, null, letter); + targetElement.dispatchEvent(event); + }); +} + +[...document.querySelectorAll('input, textarea')].map(element => { debug((textField ? '\n' : '') + element.localName); textField = element; @@ -46,11 +55,11 @@ shouldBeFalse('textField.innerText = " WebKit "; internals.wasLastChangeUserEdit(textField)'); } - textField.parentNode.removeChild(textField); -} + textField.focus(); + shouldBeFalse('dispatchTextEventsInTextField(textField, "foo"); internals.wasLastChangeUserEdit(textField)'); -runTest(document.getElementsByTagName('input')[0]); -runTest(document.getElementsByTagName('textarea')[0]); + textField.parentNode.removeChild(textField); +}); diff --git a/LayoutTests/fast/mediastream/getDisplayMedia-max-constraints4.html b/LayoutTests/fast/mediastream/getDisplayMedia-max-constraints4.html index 2d620b7e5ebc0..6920ecb4facc2 100644 --- a/LayoutTests/fast/mediastream/getDisplayMedia-max-constraints4.html +++ b/LayoutTests/fast/mediastream/getDisplayMedia-max-constraints4.html @@ -29,7 +29,7 @@ setTimeout(() => reject("configuration change timeout"), 5000); }); if (window.testRunner) - testRunner.triggerMockCaptureConfigurationChange(false, true); + testRunner.triggerMockCaptureConfigurationChange(false, false, true); await promise; let videoFrame2; diff --git a/LayoutTests/fast/mediastream/getDisplayMedia-max-constraints5.html b/LayoutTests/fast/mediastream/getDisplayMedia-max-constraints5.html index 0ca431853982f..9c704eb2af453 100644 --- a/LayoutTests/fast/mediastream/getDisplayMedia-max-constraints5.html +++ b/LayoutTests/fast/mediastream/getDisplayMedia-max-constraints5.html @@ -38,7 +38,7 @@ }); if (window.testRunner) - testRunner.triggerMockCaptureConfigurationChange(false, true); + testRunner.triggerMockCaptureConfigurationChange(false, false, true); await promise; await validateSize(test, stream, 3000, 1687, "new video original") diff --git a/LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt b/LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt index 9764691bb5705..59f6d148853f6 100644 --- a/LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt +++ b/LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt @@ -1,4 +1,5 @@ PASS Trigger configurationchange event in case OS changes microphone on its own +PASS Trigger configurationchange event in case background blur changes diff --git a/LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html b/LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html index a8cf47676c2de..ba62b1fbe16c3 100644 --- a/LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html +++ b/LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html @@ -21,7 +21,7 @@ assert_equals(track.label, "Mock audio device 1"); - testRunner.triggerMockCaptureConfigurationChange(true, false); + testRunner.triggerMockCaptureConfigurationChange(false, true, false); await new Promise((resolve, reject) => { track.onconfigurationchange = resolve; @@ -33,6 +33,30 @@ await new Promise(resolve => setTimeout(resolve, 2000)); assert_equals(track.readyState, "live"); }, "Trigger configurationchange event in case OS changes microphone on its own"); + + promise_test(async (t) => { + if (!window.testRunner) + return; + + const stream = await navigator.mediaDevices.getUserMedia({ video: true }); + const track = stream.getVideoTracks()[0]; + + video.srcObject = stream; + await video.play(); + + assert_false(track.getSettings().backgroundBlur); + assert_array_equals(track.getCapabilities().backgroundBlur, [false]); + + testRunner.triggerMockCaptureConfigurationChange(true, false, false); + + await new Promise((resolve, reject) => { + track.onconfigurationchange = resolve; + setTimeout(()=> reject("waited too long for configurationchange"), 5000); + }); + + assert_true(track.getSettings().backgroundBlur); + assert_array_equals(track.getCapabilities().backgroundBlur, [true]); + }, "Trigger configurationchange event in case background blur changes"); diff --git a/LayoutTests/http/tests/dom/noreferrer-window-not-targetable-expected.txt b/LayoutTests/http/tests/dom/noreferrer-window-not-targetable-expected.txt index b69451ffbfc69..9ebeb73aeb2f7 100644 --- a/LayoutTests/http/tests/dom/noreferrer-window-not-targetable-expected.txt +++ b/LayoutTests/http/tests/dom/noreferrer-window-not-targetable-expected.txt @@ -4,7 +4,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE PASS w.location.href is "about:blank" -PASS testRunner.windowCount() is 2 +PASS testRunner.windowCount() is 3 PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/http/tests/dom/noreferrer-window-not-targetable.html b/LayoutTests/http/tests/dom/noreferrer-window-not-targetable.html index 6a005e9f58530..c18e92711ac83 100644 --- a/LayoutTests/http/tests/dom/noreferrer-window-not-targetable.html +++ b/LayoutTests/http/tests/dom/noreferrer-window-not-targetable.html @@ -16,11 +16,7 @@ shouldBeEqualToString("w.location.href", "about:blank"); w.onload = function() { if (window.testRunner) { - if (testRunner.isWebKit2) { - shouldBe("testRunner.windowCount()", "2"); - } else { - shouldBe("testRunner.windowCount()", "3"); - } + shouldBe("testRunner.windowCount()", "3"); } finishJSTest(); } diff --git a/LayoutTests/http/tests/download/sandboxed-iframe-download-not-allowed-expected.txt b/LayoutTests/http/tests/download/sandboxed-iframe-download-not-allowed-expected.txt index 8b85242e322b0..298b234dfd829 100644 --- a/LayoutTests/http/tests/download/sandboxed-iframe-download-not-allowed-expected.txt +++ b/LayoutTests/http/tests/download/sandboxed-iframe-download-not-allowed-expected.txt @@ -1,7 +1,5 @@ CONSOLE MESSAGE: Not allowed to download due to sandboxing CONSOLE MESSAGE: Not allowed to download due to sandboxing -CONSOLE MESSAGE: Not allowed to download due to sandboxing -CONSOLE MESSAGE: Not allowed to download due to sandboxing This test passes if no download is started. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". diff --git a/LayoutTests/http/tests/iframe-monitor/dark-mode-expected.txt b/LayoutTests/http/tests/iframe-monitor/dark-mode-expected.txt index 708662c1638a2..fe566f4c8d20f 100644 --- a/LayoutTests/http/tests/iframe-monitor/dark-mode-expected.txt +++ b/LayoutTests/http/tests/iframe-monitor/dark-mode-expected.txt @@ -1,6 +1,6 @@ -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://127.0.0.1:8000/iframe-monitor/resources/--eligible--/iframe.html +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://127.0.0.1:8000/iframe-monitor/resources/--eligible--/iframe.html +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://127.0.0.1:8000/iframe-monitor/resources/--eligible--/iframe.html Test unloaded HTML supports dark mode correctly. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". diff --git a/LayoutTests/http/tests/iframe-monitor/eligibility-expected.txt b/LayoutTests/http/tests/iframe-monitor/eligibility-expected.txt index 9258fbb9b648c..bde4ec6657799 100644 --- a/LayoutTests/http/tests/iframe-monitor/eligibility-expected.txt +++ b/LayoutTests/http/tests/iframe-monitor/eligibility-expected.txt @@ -1,4 +1,4 @@ -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/iframe.html Test resource monitor. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". diff --git a/LayoutTests/http/tests/iframe-monitor/iframe-unload-expected.txt b/LayoutTests/http/tests/iframe-monitor/iframe-unload-expected.txt index 4bd3a346d730d..532c44c05f8c6 100644 --- a/LayoutTests/http/tests/iframe-monitor/iframe-unload-expected.txt +++ b/LayoutTests/http/tests/iframe-monitor/iframe-unload-expected.txt @@ -1,4 +1,4 @@ -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/iframe.html Test iframe with huge resource usage is unloaded. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". diff --git a/LayoutTests/http/tests/iframe-monitor/shared-worker-expected.txt b/LayoutTests/http/tests/iframe-monitor/shared-worker-expected.txt index b868ca131fedf..4bdbae36fdc69 100644 --- a/LayoutTests/http/tests/iframe-monitor/shared-worker-expected.txt +++ b/LayoutTests/http/tests/iframe-monitor/shared-worker-expected.txt @@ -5,8 +5,8 @@ CONSOLE MESSAGE: Launched shared worker CONSOLE MESSAGE: iframe is ready CONSOLE MESSAGE: Get message from parent window CONSOLE MESSAGE: Send fetch request to worker -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/shared-worker.html +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/shared-worker.html Test iframes using same shared worker are unloaded. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". diff --git a/LayoutTests/http/tests/iframe-monitor/throttler-expected.txt b/LayoutTests/http/tests/iframe-monitor/throttler-expected.txt index d61768888902b..925e8334a060d 100644 --- a/LayoutTests/http/tests/iframe-monitor/throttler-expected.txt +++ b/LayoutTests/http/tests/iframe-monitor/throttler-expected.txt @@ -1,8 +1,8 @@ -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. -CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit. +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/iframe.html +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/iframe.html +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/iframe.html +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/iframe.html +CONSOLE MESSAGE: Frame was unloaded because its network usage exceeded the limit: 10240 bytes, url=http://localhost:8080/iframe-monitor/resources/--eligible--/iframe.html CONSOLE MESSAGE: Frame's network usage exceeded the limit. Test throttler prevents unloaded. diff --git a/LayoutTests/http/tests/site-isolation/fullscreen-expected.txt b/LayoutTests/http/tests/site-isolation/fullscreen-expected.txt index 879bd9e58554a..4a1154fdd715f 100644 --- a/LayoutTests/http/tests/site-isolation/fullscreen-expected.txt +++ b/LayoutTests/http/tests/site-isolation/fullscreen-expected.txt @@ -1,11 +1,15 @@ supportsFullScreen() == true enterFullScreenForElement() beganEnterFullScreen() - initialRect.size: {300, 150}, finalRect.size: {300, 150} +exitFullScreenForElement() +beganExitFullScreen() - initialRect.size: {800, 600}, finalRect.size: {300, 150} FIXME: Size after entering should be 600x800 like it is with site isolation off. The size currently comes from screenRectOfContents. -Also, there should be exitFullScreenForElement and beganExitFullScreen callbacks like there are with site isolation off. +Size after entering fullscreen: 600x800 +iframe border style after transition: 0px none rgb(0, 0, 0) -Size after entering fullscreen: 150x300 Size after exiting fullscreen: 150x300 +iframe border style after transition: 0px inset rgb(0, 0, 0) + diff --git a/LayoutTests/http/tests/site-isolation/fullscreen.html b/LayoutTests/http/tests/site-isolation/fullscreen.html index f01238da10f03..520cb9d0ce0aa 100644 --- a/LayoutTests/http/tests/site-isolation/fullscreen.html +++ b/LayoutTests/http/tests/site-isolation/fullscreen.html @@ -7,12 +7,12 @@ } addEventListener("message", (event) => { document.getElementById("mylog").innerHTML += event.data + "
"; + document.getElementById("mylog").innerHTML += 'iframe border style after transition: ' + getComputedStyle(document.getElementById("frame")).getPropertyValue('border') + "

"; if (event.data.startsWith('Size after exiting') && window.testRunner) { testRunner.notifyDone() } }); - +
FIXME: Size after entering should be 600x800 like it is with site isolation off.
The size currently comes from screenRectOfContents.
-Also, there should be exitFullScreenForElement and beganExitFullScreen callbacks like there are with site isolation off.

diff --git a/LayoutTests/http/tests/site-isolation/history/add-iframes-and-go-back-expected.txt b/LayoutTests/http/tests/site-isolation/history/add-iframes-and-go-back-expected.txt new file mode 100644 index 0000000000000..9ab91c4f3fe38 --- /dev/null +++ b/LayoutTests/http/tests/site-isolation/history/add-iframes-and-go-back-expected.txt @@ -0,0 +1,10 @@ +Verifies that using history.back() while recursively creating iframes does not increase history.length. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS history.length is 2 +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/LayoutTests/http/tests/site-isolation/history/add-iframes-and-go-back.html b/LayoutTests/http/tests/site-isolation/history/add-iframes-and-go-back.html new file mode 100644 index 0000000000000..c34500ed59b44 --- /dev/null +++ b/LayoutTests/http/tests/site-isolation/history/add-iframes-and-go-back.html @@ -0,0 +1,18 @@ + + + diff --git a/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-does-not-leak-expected.txt b/LayoutTests/http/tests/site-isolation/history/navigate-same-site-iframe-into-new-process-and-go-back-expected.txt similarity index 55% rename from LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-does-not-leak-expected.txt rename to LayoutTests/http/tests/site-isolation/history/navigate-same-site-iframe-into-new-process-and-go-back-expected.txt index 49bd11e077926..ede66e9fbc7f6 100644 --- a/LayoutTests/editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-does-not-leak-expected.txt +++ b/LayoutTests/http/tests/site-isolation/history/navigate-same-site-iframe-into-new-process-and-go-back-expected.txt @@ -1,9 +1,8 @@ -Tests that opening the context menu does not leak the document object. +Verifies that history.back() works when a same-site iframe is navigated cross-site. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -PASS The iframe document didn't leak. PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/http/tests/site-isolation/history/navigate-same-site-iframe-into-new-process-and-go-back.html b/LayoutTests/http/tests/site-isolation/history/navigate-same-site-iframe-into-new-process-and-go-back.html new file mode 100644 index 0000000000000..bbead3e105121 --- /dev/null +++ b/LayoutTests/http/tests/site-isolation/history/navigate-same-site-iframe-into-new-process-and-go-back.html @@ -0,0 +1,17 @@ + + + + diff --git a/LayoutTests/http/tests/site-isolation/history/resources/add-recursive-iframes-then-go-back.html b/LayoutTests/http/tests/site-isolation/history/resources/add-recursive-iframes-then-go-back.html new file mode 100644 index 0000000000000..f5592e1ede5e2 --- /dev/null +++ b/LayoutTests/http/tests/site-isolation/history/resources/add-recursive-iframes-then-go-back.html @@ -0,0 +1,16 @@ + diff --git a/LayoutTests/http/tests/site-isolation/history/resources/go-back.html b/LayoutTests/http/tests/site-isolation/history/resources/go-back.html new file mode 100644 index 0000000000000..8dd6831eda94f --- /dev/null +++ b/LayoutTests/http/tests/site-isolation/history/resources/go-back.html @@ -0,0 +1,2 @@ + + diff --git a/LayoutTests/http/tests/site-isolation/resources/recursive-create-remote-iframe.html b/LayoutTests/http/tests/site-isolation/resources/recursive-create-remote-iframe.html new file mode 100644 index 0000000000000..4eb403093b088 --- /dev/null +++ b/LayoutTests/http/tests/site-isolation/resources/recursive-create-remote-iframe.html @@ -0,0 +1,12 @@ + diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/anchor-scope-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/anchor-scope-computed-expected.txt index dd7ad4e07956f..1ee8fd1c6a178 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/anchor-scope-computed-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/anchor-scope-computed-expected.txt @@ -1,10 +1,10 @@ -FAIL Property anchor-scope value 'none' assert_true: anchor-scope doesn't seem to be supported in the computed style expected true got false -FAIL Property anchor-scope value 'initial' assert_true: anchor-scope doesn't seem to be supported in the computed style expected true got false -FAIL Property anchor-scope value 'all' assert_true: anchor-scope doesn't seem to be supported in the computed style expected true got false -FAIL Property anchor-scope value '--a' assert_true: anchor-scope doesn't seem to be supported in the computed style expected true got false -FAIL Property anchor-scope value '--a, --b' assert_true: anchor-scope doesn't seem to be supported in the computed style expected true got false -FAIL Property anchor-scope value '--a, --b, --c' assert_true: anchor-scope doesn't seem to be supported in the computed style expected true got false -FAIL Property anchor-scope has initial value none assert_true: anchor-scope doesn't seem to be supported in the computed style expected true got false -FAIL Property anchor-scope does not inherit assert_true: expected true got false +PASS Property anchor-scope value 'none' +PASS Property anchor-scope value 'initial' +PASS Property anchor-scope value 'all' +PASS Property anchor-scope value '--a' +PASS Property anchor-scope value '--a, --b' +PASS Property anchor-scope value '--a, --b, --c' +PASS Property anchor-scope has initial value none +PASS Property anchor-scope does not inherit diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/anchor-scope-parsing-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/anchor-scope-parsing-expected.txt index d9f375da906b3..bd1324b500889 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/anchor-scope-parsing-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/anchor-scope-parsing-expected.txt @@ -1,13 +1,13 @@ -FAIL e.style['anchor-scope'] = "initial" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['anchor-scope'] = "inherit" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['anchor-scope'] = "unset" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['anchor-scope'] = "revert" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['anchor-scope'] = "none" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['anchor-scope'] = "all" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['anchor-scope'] = "--a" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['anchor-scope'] = "--a, --b" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['anchor-scope'] = "--a, --b, --c" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['anchor-scope'] = "initial" should set the property value +PASS e.style['anchor-scope'] = "inherit" should set the property value +PASS e.style['anchor-scope'] = "unset" should set the property value +PASS e.style['anchor-scope'] = "revert" should set the property value +PASS e.style['anchor-scope'] = "none" should set the property value +PASS e.style['anchor-scope'] = "all" should set the property value +PASS e.style['anchor-scope'] = "--a" should set the property value +PASS e.style['anchor-scope'] = "--a, --b" should set the property value +PASS e.style['anchor-scope'] = "--a, --b, --c" should set the property value PASS e.style['anchor-scope'] = "--a none" should not set the property value PASS e.style['anchor-scope'] = "none --a" should not set the property value PASS e.style['anchor-scope'] = "none all" should not set the property value diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/position-try-fallbacks-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/position-try-fallbacks-computed-expected.txt index 73586e825be5e..cfe11d698c412 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/position-try-fallbacks-computed-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/position-try-fallbacks-computed-expected.txt @@ -4,10 +4,10 @@ PASS Property position-try-fallbacks value 'flip-block' PASS Property position-try-fallbacks value 'flip-inline' PASS Property position-try-fallbacks value 'flip-start' PASS Property position-try-fallbacks value 'flip-block, flip-inline' -FAIL Property position-try-fallbacks value '--foo, --bar' assert_true: '--foo, --bar' is a supported value for position-try-fallbacks. expected true got false +PASS Property position-try-fallbacks value '--foo, --bar' PASS Property position-try-fallbacks value 'flip-start flip-inline flip-block' -FAIL Property position-try-fallbacks value 'flip-start --flop' assert_true: 'flip-start --flop' is a supported value for position-try-fallbacks. expected true got false -FAIL Property position-try-fallbacks value '--flop flip-start' assert_true: '--flop flip-start' is a supported value for position-try-fallbacks. expected true got false +PASS Property position-try-fallbacks value 'flip-start --flop' +PASS Property position-try-fallbacks value '--flop flip-start' FAIL Property position-try-fallbacks value 'left top' assert_true: 'left top' is a supported value for position-try-fallbacks. expected true got false FAIL Property position-try-fallbacks value 'top left' assert_true: 'top left' is a supported value for position-try-fallbacks. expected true got false FAIL Property position-try-fallbacks value 'start start' assert_true: 'start start' is a supported value for position-try-fallbacks. expected true got false diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing-expected.txt index 8eb46c1f4e36b..abb3923077173 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing-expected.txt @@ -10,13 +10,13 @@ PASS e.style['position-try-fallbacks'] = "flip-start, flip-block" should set the PASS e.style['position-try-fallbacks'] = "flip-start flip-inline, flip-block" should set the property value PASS e.style['position-try-fallbacks'] = "flip-start, flip-start" should set the property value PASS e.style['position-try-fallbacks'] = "flip-start flip-inline flip-block" should set the property value -FAIL e.style['position-try-fallbacks'] = "flip-block, --foo" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['position-try-fallbacks'] = "--bar, flip-block flip-start" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['position-try-fallbacks'] = "--foo, --bar, --baz" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['position-try-fallbacks'] = "--bar flip-block" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['position-try-fallbacks'] = "--bar flip-inline flip-block" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['position-try-fallbacks'] = "flip-inline --foo" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['position-try-fallbacks'] = "flip-inline flip-start --foo" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['position-try-fallbacks'] = "flip-block, --foo" should set the property value +PASS e.style['position-try-fallbacks'] = "--bar, flip-block flip-start" should set the property value +PASS e.style['position-try-fallbacks'] = "--foo, --bar, --baz" should set the property value +PASS e.style['position-try-fallbacks'] = "--bar flip-block" should set the property value +PASS e.style['position-try-fallbacks'] = "--bar flip-inline flip-block" should set the property value +PASS e.style['position-try-fallbacks'] = "flip-inline --foo" should set the property value +PASS e.style['position-try-fallbacks'] = "flip-inline flip-start --foo" should set the property value FAIL e.style['position-try-fallbacks'] = "left top" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['position-try-fallbacks'] = "top left" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['position-try-fallbacks'] = "start start" should set the property value assert_not_equals: property should be set got disallowed value "" diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-area-in-position-try-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-area-in-position-try-expected.txt index 19ce9637ddef8..1fc9535fd609c 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-area-in-position-try-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-area-in-position-try-expected.txt @@ -1,61 +1,61 @@ -FAIL none assert_true: expected true got false -FAIL span-all assert_true: expected true got false -FAIL span-all span-all assert_true: expected true got false -FAIL top left assert_true: expected true got false -FAIL top center assert_true: expected true got false -FAIL top right assert_true: expected true got false -FAIL center left assert_true: expected true got false -FAIL center center assert_true: expected true got false -FAIL center right assert_true: expected true got false -FAIL bottom left assert_true: expected true got false -FAIL bottom center assert_true: expected true got false -FAIL bottom right assert_true: expected true got false -FAIL start start assert_true: expected true got false -FAIL start center assert_true: expected true got false -FAIL start end assert_true: expected true got false -FAIL center start assert_true: expected true got false -FAIL center end assert_true: expected true got false -FAIL end start assert_true: expected true got false -FAIL end center assert_true: expected true got false -FAIL end end assert_true: expected true got false -FAIL self-start self-start assert_true: expected true got false -FAIL self-start center assert_true: expected true got false -FAIL self-start self-end assert_true: expected true got false -FAIL center self-start assert_true: expected true got false -FAIL center self-end assert_true: expected true got false -FAIL self-end self-start assert_true: expected true got false -FAIL self-end center assert_true: expected true got false -FAIL self-end self-end assert_true: expected true got false -FAIL y-start x-start assert_true: expected true got false -FAIL y-start center assert_true: expected true got false -FAIL y-start x-end assert_true: expected true got false -FAIL center x-start assert_true: expected true got false -FAIL center x-end assert_true: expected true got false -FAIL y-end x-start assert_true: expected true got false -FAIL y-end center assert_true: expected true got false -FAIL y-end x-end assert_true: expected true got false -FAIL y-self-start x-self-start assert_true: expected true got false -FAIL y-self-start center assert_true: expected true got false -FAIL y-self-start x-self-end assert_true: expected true got false -FAIL center x-self-start assert_true: expected true got false -FAIL center x-self-end assert_true: expected true got false -FAIL y-self-end x-self-start assert_true: expected true got false -FAIL y-self-end center assert_true: expected true got false -FAIL y-self-end x-self-end assert_true: expected true got false -FAIL span-y-self-start span-x-self-end assert_true: expected true got false -FAIL span-bottom span-all assert_true: expected true got false -FAIL Placement: --top assert_true: expected true got false -FAIL Placement: --left assert_true: expected true got false -FAIL Placement: --right, --top assert_true: expected true got false -FAIL Placement: --bottom, --top assert_true: expected true got false -FAIL Placement: --bottom, --right, --top assert_true: expected true got false -FAIL Placement: --bottom, --right, --left, --top assert_true: expected true got false -FAIL Placement: --bottom, --left, --top, --right assert_true: expected true got false -FAIL Placement: --right flip-inline assert_true: expected true got false -FAIL Placement: --bottom flip-block assert_true: expected true got false -FAIL Placement: --left flip-start assert_true: expected true got false -FAIL Placement: --left flip-inline, --top assert_true: expected true got false -FAIL Placement: --top flip-block, --left assert_true: expected true got false -FAIL Placement: --left flip-start flip-block, --left assert_true: expected true got false +FAIL none assert_equals: offsetLeft expected 0 but got 200 +FAIL span-all assert_equals: offsetLeft expected 0 but got 200 +FAIL span-all span-all assert_equals: offsetLeft expected 0 but got 200 +FAIL top left assert_equals: offsetLeft expected 0 but got 200 +FAIL top center assert_equals: offsetLeft expected 0 but got 200 +FAIL top right assert_equals: offsetLeft expected 0 but got 200 +FAIL center left assert_equals: offsetLeft expected 0 but got 200 +FAIL center center assert_equals: offsetLeft expected 0 but got 200 +FAIL center right assert_equals: offsetLeft expected 0 but got 200 +FAIL bottom left assert_equals: offsetLeft expected 0 but got 200 +FAIL bottom center assert_equals: offsetLeft expected 0 but got 200 +FAIL bottom right assert_equals: offsetLeft expected 0 but got 200 +FAIL start start assert_equals: offsetLeft expected 0 but got 200 +FAIL start center assert_equals: offsetLeft expected 0 but got 200 +FAIL start end assert_equals: offsetLeft expected 0 but got 200 +FAIL center start assert_equals: offsetLeft expected 0 but got 200 +FAIL center end assert_equals: offsetLeft expected 0 but got 200 +FAIL end start assert_equals: offsetLeft expected 0 but got 200 +FAIL end center assert_equals: offsetLeft expected 0 but got 200 +FAIL end end assert_equals: offsetLeft expected 0 but got 200 +FAIL self-start self-start assert_equals: offsetLeft expected 0 but got 200 +FAIL self-start center assert_equals: offsetLeft expected 0 but got 200 +FAIL self-start self-end assert_equals: offsetLeft expected 0 but got 200 +FAIL center self-start assert_equals: offsetLeft expected 0 but got 200 +FAIL center self-end assert_equals: offsetLeft expected 0 but got 200 +FAIL self-end self-start assert_equals: offsetLeft expected 0 but got 200 +FAIL self-end center assert_equals: offsetLeft expected 0 but got 200 +FAIL self-end self-end assert_equals: offsetLeft expected 0 but got 200 +FAIL y-start x-start assert_equals: offsetLeft expected 0 but got 200 +FAIL y-start center assert_equals: offsetLeft expected 0 but got 200 +FAIL y-start x-end assert_equals: offsetLeft expected 0 but got 200 +FAIL center x-start assert_equals: offsetLeft expected 0 but got 200 +FAIL center x-end assert_equals: offsetLeft expected 0 but got 200 +FAIL y-end x-start assert_equals: offsetLeft expected 0 but got 200 +FAIL y-end center assert_equals: offsetLeft expected 0 but got 200 +FAIL y-end x-end assert_equals: offsetLeft expected 0 but got 200 +FAIL y-self-start x-self-start assert_equals: offsetLeft expected 0 but got 200 +FAIL y-self-start center assert_equals: offsetLeft expected 0 but got 200 +FAIL y-self-start x-self-end assert_equals: offsetLeft expected 0 but got 200 +FAIL center x-self-start assert_equals: offsetLeft expected 0 but got 200 +FAIL center x-self-end assert_equals: offsetLeft expected 0 but got 200 +FAIL y-self-end x-self-start assert_equals: offsetLeft expected 0 but got 200 +FAIL y-self-end center assert_equals: offsetLeft expected 0 but got 200 +FAIL y-self-end x-self-end assert_equals: offsetLeft expected 0 but got 200 +FAIL span-y-self-start span-x-self-end assert_equals: offsetLeft expected 0 but got 200 +FAIL span-bottom span-all assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --top assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --left assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --right, --top assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --bottom, --top assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --bottom, --right, --top assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --bottom, --right, --left, --top assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --bottom, --left, --top, --right assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --right flip-inline assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --bottom flip-block assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --left flip-start assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --left flip-inline, --top assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --top flip-block, --left assert_equals: offsetLeft expected 0 but got 200 +FAIL Placement: --left flip-start flip-block, --left assert_equals: offsetLeft expected 0 but got 200 diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/property-interpolations-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/property-interpolations-expected.txt index e48251d15b63a..4e663008eb708 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/property-interpolations-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/property-interpolations-expected.txt @@ -251,48 +251,48 @@ PASS Web Animations: property from [left] to [right] at (0.5) sh PASS Web Animations: property from [left] to [right] at (0.6) should be [right] PASS Web Animations: property from [left] to [right] at (1) should be [right] PASS Web Animations: property from [left] to [right] at (1.5) should be [right] -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (-0.3) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (0) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (0.3) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (0.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (0.6) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (1) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (1.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (-0.3) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (0) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (0.3) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (0.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (0.6) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (1) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (1.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions: property from [none] to [--foo] at (-0.3) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions: property from [none] to [--foo] at (0) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions: property from [none] to [--foo] at (0.3) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions: property from [none] to [--foo] at (0.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions: property from [none] to [--foo] at (0.6) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions: property from [none] to [--foo] at (1) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions: property from [none] to [--foo] at (1.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [none] to [--foo] at (-0.3) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [none] to [--foo] at (0) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [none] to [--foo] at (0.3) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [none] to [--foo] at (0.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [none] to [--foo] at (0.6) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [none] to [--foo] at (1) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [none] to [--foo] at (1.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Animations: property from [none] to [--foo] at (-0.3) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Animations: property from [none] to [--foo] at (0) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Animations: property from [none] to [--foo] at (0.3) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL CSS Animations: property from [none] to [--foo] at (0.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Animations: property from [none] to [--foo] at (0.6) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Animations: property from [none] to [--foo] at (1) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL CSS Animations: property from [none] to [--foo] at (1.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL Web Animations: property from [none] to [--foo] at (-0.3) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL Web Animations: property from [none] to [--foo] at (0) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL Web Animations: property from [none] to [--foo] at (0.3) should be [none] assert_true: 'to' value should be supported expected true got false -FAIL Web Animations: property from [none] to [--foo] at (0.5) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL Web Animations: property from [none] to [--foo] at (0.6) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL Web Animations: property from [none] to [--foo] at (1) should be [--foo] assert_true: 'to' value should be supported expected true got false -FAIL Web Animations: property from [none] to [--foo] at (1.5) should be [--foo] assert_true: 'to' value should be supported expected true got false +PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (-0.3) should be [none] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (0) should be [none] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (0.3) should be [none] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (0.5) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (0.6) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (1) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [--foo] at (1.5) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (-0.3) should be [none] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (0) should be [none] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (0.3) should be [none] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (0.5) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (0.6) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (1) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [--foo] at (1.5) should be [--foo] +PASS CSS Transitions: property from [none] to [--foo] at (-0.3) should be [--foo] +PASS CSS Transitions: property from [none] to [--foo] at (0) should be [--foo] +PASS CSS Transitions: property from [none] to [--foo] at (0.3) should be [--foo] +PASS CSS Transitions: property from [none] to [--foo] at (0.5) should be [--foo] +PASS CSS Transitions: property from [none] to [--foo] at (0.6) should be [--foo] +PASS CSS Transitions: property from [none] to [--foo] at (1) should be [--foo] +PASS CSS Transitions: property from [none] to [--foo] at (1.5) should be [--foo] +PASS CSS Transitions with transition: all: property from [none] to [--foo] at (-0.3) should be [--foo] +PASS CSS Transitions with transition: all: property from [none] to [--foo] at (0) should be [--foo] +PASS CSS Transitions with transition: all: property from [none] to [--foo] at (0.3) should be [--foo] +PASS CSS Transitions with transition: all: property from [none] to [--foo] at (0.5) should be [--foo] +PASS CSS Transitions with transition: all: property from [none] to [--foo] at (0.6) should be [--foo] +PASS CSS Transitions with transition: all: property from [none] to [--foo] at (1) should be [--foo] +PASS CSS Transitions with transition: all: property from [none] to [--foo] at (1.5) should be [--foo] +PASS CSS Animations: property from [none] to [--foo] at (-0.3) should be [none] +PASS CSS Animations: property from [none] to [--foo] at (0) should be [none] +PASS CSS Animations: property from [none] to [--foo] at (0.3) should be [none] +PASS CSS Animations: property from [none] to [--foo] at (0.5) should be [--foo] +PASS CSS Animations: property from [none] to [--foo] at (0.6) should be [--foo] +PASS CSS Animations: property from [none] to [--foo] at (1) should be [--foo] +PASS CSS Animations: property from [none] to [--foo] at (1.5) should be [--foo] +PASS Web Animations: property from [none] to [--foo] at (-0.3) should be [none] +PASS Web Animations: property from [none] to [--foo] at (0) should be [none] +PASS Web Animations: property from [none] to [--foo] at (0.3) should be [none] +PASS Web Animations: property from [none] to [--foo] at (0.5) should be [--foo] +PASS Web Animations: property from [none] to [--foo] at (0.6) should be [--foo] +PASS Web Animations: property from [none] to [--foo] at (1) should be [--foo] +PASS Web Animations: property from [none] to [--foo] at (1.5) should be [--foo] PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [flip-block] at (-0.3) should be [none] PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [flip-block] at (0) should be [none] PASS CSS Transitions with transition-behavior:allow-discrete: property from [none] to [flip-block] at (0.3) should be [none] @@ -377,90 +377,90 @@ PASS Web Animations: property from [flip-inline] to [fl PASS Web Animations: property from [flip-inline] to [flip-block] at (0.6) should be [flip-block] PASS Web Animations: property from [flip-inline] to [flip-block] at (1) should be [flip-block] PASS Web Animations: property from [flip-inline] to [flip-block] at (1.5) should be [flip-block] -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (-0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (0) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (0.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (0.6) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (1) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (1.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (-0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (0) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (0.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (0.6) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (1) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (1.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [--bar] at (-0.3) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [--bar] at (0) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [--bar] at (0.3) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [--bar] at (0.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [--bar] at (0.6) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [--bar] at (1) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [--bar] at (1.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [--bar] at (-0.3) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [--bar] at (0) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [--bar] at (0.3) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [--bar] at (0.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [--bar] at (0.6) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [--bar] at (1) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [--bar] at (1.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [--bar] at (-0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [--bar] at (0) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [--bar] at (0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [--bar] at (0.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [--bar] at (0.6) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [--bar] at (1) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [--bar] at (1.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [--bar] at (-0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [--bar] at (0) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [--bar] at (0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [--bar] at (0.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [--bar] at (0.6) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [--bar] at (1) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [--bar] at (1.5) should be [--bar] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (-0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (0) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (0.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (0.6) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (1) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (1.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (-0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (0) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (0.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (0.6) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (1) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (1.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [flip-block] at (-0.3) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [flip-block] at (0) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [flip-block] at (0.3) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [flip-block] at (0.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [flip-block] at (0.6) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [flip-block] at (1) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions: property from [--foo] to [flip-block] at (1.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [flip-block] at (-0.3) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [flip-block] at (0) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [flip-block] at (0.3) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [flip-block] at (0.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [flip-block] at (0.6) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [flip-block] at (1) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Transitions with transition: all: property from [--foo] to [flip-block] at (1.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [flip-block] at (-0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [flip-block] at (0) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [flip-block] at (0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [flip-block] at (0.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [flip-block] at (0.6) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [flip-block] at (1) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL CSS Animations: property from [--foo] to [flip-block] at (1.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [flip-block] at (-0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [flip-block] at (0) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [flip-block] at (0.3) should be [--foo] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [flip-block] at (0.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [flip-block] at (0.6) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [flip-block] at (1) should be [flip-block] assert_true: 'from' value should be supported expected true got false -FAIL Web Animations: property from [--foo] to [flip-block] at (1.5) should be [flip-block] assert_true: 'from' value should be supported expected true got false +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (-0.3) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (0) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (0.3) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (0.5) should be [--bar] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (0.6) should be [--bar] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (1) should be [--bar] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [--bar] at (1.5) should be [--bar] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (-0.3) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (0) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (0.3) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (0.5) should be [--bar] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (0.6) should be [--bar] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (1) should be [--bar] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [--bar] at (1.5) should be [--bar] +PASS CSS Transitions: property from [--foo] to [--bar] at (-0.3) should be [--bar] +PASS CSS Transitions: property from [--foo] to [--bar] at (0) should be [--bar] +PASS CSS Transitions: property from [--foo] to [--bar] at (0.3) should be [--bar] +PASS CSS Transitions: property from [--foo] to [--bar] at (0.5) should be [--bar] +PASS CSS Transitions: property from [--foo] to [--bar] at (0.6) should be [--bar] +PASS CSS Transitions: property from [--foo] to [--bar] at (1) should be [--bar] +PASS CSS Transitions: property from [--foo] to [--bar] at (1.5) should be [--bar] +PASS CSS Transitions with transition: all: property from [--foo] to [--bar] at (-0.3) should be [--bar] +PASS CSS Transitions with transition: all: property from [--foo] to [--bar] at (0) should be [--bar] +PASS CSS Transitions with transition: all: property from [--foo] to [--bar] at (0.3) should be [--bar] +PASS CSS Transitions with transition: all: property from [--foo] to [--bar] at (0.5) should be [--bar] +PASS CSS Transitions with transition: all: property from [--foo] to [--bar] at (0.6) should be [--bar] +PASS CSS Transitions with transition: all: property from [--foo] to [--bar] at (1) should be [--bar] +PASS CSS Transitions with transition: all: property from [--foo] to [--bar] at (1.5) should be [--bar] +PASS CSS Animations: property from [--foo] to [--bar] at (-0.3) should be [--foo] +PASS CSS Animations: property from [--foo] to [--bar] at (0) should be [--foo] +PASS CSS Animations: property from [--foo] to [--bar] at (0.3) should be [--foo] +PASS CSS Animations: property from [--foo] to [--bar] at (0.5) should be [--bar] +PASS CSS Animations: property from [--foo] to [--bar] at (0.6) should be [--bar] +PASS CSS Animations: property from [--foo] to [--bar] at (1) should be [--bar] +PASS CSS Animations: property from [--foo] to [--bar] at (1.5) should be [--bar] +PASS Web Animations: property from [--foo] to [--bar] at (-0.3) should be [--foo] +PASS Web Animations: property from [--foo] to [--bar] at (0) should be [--foo] +PASS Web Animations: property from [--foo] to [--bar] at (0.3) should be [--foo] +PASS Web Animations: property from [--foo] to [--bar] at (0.5) should be [--bar] +PASS Web Animations: property from [--foo] to [--bar] at (0.6) should be [--bar] +PASS Web Animations: property from [--foo] to [--bar] at (1) should be [--bar] +PASS Web Animations: property from [--foo] to [--bar] at (1.5) should be [--bar] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (-0.3) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (0) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (0.3) should be [--foo] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (0.5) should be [flip-block] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (0.6) should be [flip-block] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (1) should be [flip-block] +PASS CSS Transitions with transition-behavior:allow-discrete: property from [--foo] to [flip-block] at (1.5) should be [flip-block] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (-0.3) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (0) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (0.3) should be [--foo] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (0.5) should be [flip-block] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (0.6) should be [flip-block] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (1) should be [flip-block] +PASS CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [--foo] to [flip-block] at (1.5) should be [flip-block] +PASS CSS Transitions: property from [--foo] to [flip-block] at (-0.3) should be [flip-block] +PASS CSS Transitions: property from [--foo] to [flip-block] at (0) should be [flip-block] +PASS CSS Transitions: property from [--foo] to [flip-block] at (0.3) should be [flip-block] +PASS CSS Transitions: property from [--foo] to [flip-block] at (0.5) should be [flip-block] +PASS CSS Transitions: property from [--foo] to [flip-block] at (0.6) should be [flip-block] +PASS CSS Transitions: property from [--foo] to [flip-block] at (1) should be [flip-block] +PASS CSS Transitions: property from [--foo] to [flip-block] at (1.5) should be [flip-block] +PASS CSS Transitions with transition: all: property from [--foo] to [flip-block] at (-0.3) should be [flip-block] +PASS CSS Transitions with transition: all: property from [--foo] to [flip-block] at (0) should be [flip-block] +PASS CSS Transitions with transition: all: property from [--foo] to [flip-block] at (0.3) should be [flip-block] +PASS CSS Transitions with transition: all: property from [--foo] to [flip-block] at (0.5) should be [flip-block] +PASS CSS Transitions with transition: all: property from [--foo] to [flip-block] at (0.6) should be [flip-block] +PASS CSS Transitions with transition: all: property from [--foo] to [flip-block] at (1) should be [flip-block] +PASS CSS Transitions with transition: all: property from [--foo] to [flip-block] at (1.5) should be [flip-block] +PASS CSS Animations: property from [--foo] to [flip-block] at (-0.3) should be [--foo] +PASS CSS Animations: property from [--foo] to [flip-block] at (0) should be [--foo] +PASS CSS Animations: property from [--foo] to [flip-block] at (0.3) should be [--foo] +PASS CSS Animations: property from [--foo] to [flip-block] at (0.5) should be [flip-block] +PASS CSS Animations: property from [--foo] to [flip-block] at (0.6) should be [flip-block] +PASS CSS Animations: property from [--foo] to [flip-block] at (1) should be [flip-block] +PASS CSS Animations: property from [--foo] to [flip-block] at (1.5) should be [flip-block] +PASS Web Animations: property from [--foo] to [flip-block] at (-0.3) should be [--foo] +PASS Web Animations: property from [--foo] to [flip-block] at (0) should be [--foo] +PASS Web Animations: property from [--foo] to [flip-block] at (0.3) should be [--foo] +PASS Web Animations: property from [--foo] to [flip-block] at (0.5) should be [flip-block] +PASS Web Animations: property from [--foo] to [flip-block] at (0.6) should be [flip-block] +PASS Web Animations: property from [--foo] to [flip-block] at (1) should be [flip-block] +PASS Web Animations: property from [--foo] to [flip-block] at (1.5) should be [flip-block] PASS CSS Transitions with transition-behavior:allow-discrete: property from [normal] to [most-width] at (-0.3) should be [normal] PASS CSS Transitions with transition-behavior:allow-discrete: property from [normal] to [most-width] at (0) should be [normal] PASS CSS Transitions with transition-behavior:allow-discrete: property from [normal] to [most-width] at (0.3) should be [normal] diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-anchor-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-anchor-expected.txt new file mode 100644 index 0000000000000..9a1a7e4de706b --- /dev/null +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-anchor-expected.txt @@ -0,0 +1,5 @@ + +PASS Uses flip-block +PASS Uses flip-inline +PASS Uses flip-block flip-inline + diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-anchor.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-anchor.html new file mode 100644 index 0000000000000..c3b7701292784 --- /dev/null +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-anchor.html @@ -0,0 +1,78 @@ + +CSS Anchor Positioning: simple try-tactic with anchor + + + + +
+
+
+
+
+
+ diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-expected.txt index ce8fa77a11e57..77961b82c0744 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-expected.txt @@ -1,18 +1,18 @@ -FAIL CSS Anchor Positioning: try-tactic assert_equals: offsetLeft expected 10 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 1 assert_equals: offsetLeft expected 10 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 2 assert_equals: offsetLeft expected 360 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 3 assert_equals: offsetLeft expected 360 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 4 assert_equals: offsetLeft expected 360 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 5 assert_equals: offsetLeft expected 20 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 6 assert_equals: offsetLeft expected 20 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 7 assert_equals: offsetLeft expected 20 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 8 assert_equals: offsetLeft expected 20 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 9 assert_equals: offsetLeft expected 20 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 10 assert_equals: offsetLeft expected 340 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 11 assert_equals: offsetLeft expected 340 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 12 assert_equals: offsetLeft expected 340 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 13 assert_equals: offsetLeft expected 340 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 14 assert_equals: offsetLeft expected 340 but got 99999 -FAIL CSS Anchor Positioning: try-tactic 15 assert_equals: offsetLeft expected 340 but got 99999 +FAIL --pf assert_equals: offsetLeft expected 10 but got 99999 +FAIL --pf flip-block assert_equals: offsetLeft expected 10 but got 99999 +FAIL --pf flip-inline assert_equals: offsetLeft expected 360 but got 99999 +FAIL --pf flip-block flip-inline assert_equals: offsetLeft expected 360 but got 99999 +FAIL --pf flip-inline flip-block assert_equals: offsetLeft expected 360 but got 99999 +FAIL --pf flip-start assert_equals: offsetLeft expected 20 but got 99999 +FAIL --pf flip-block flip-start flip-inline assert_equals: offsetLeft expected 20 but got 99999 +FAIL --pf flip-inline flip-start flip-block assert_equals: offsetLeft expected 20 but got 99999 +FAIL --pf flip-start flip-block assert_equals: offsetLeft expected 20 but got 99999 +FAIL --pf flip-inline flip-start assert_equals: offsetLeft expected 20 but got 99999 +FAIL --pf flip-start flip-inline assert_equals: offsetLeft expected 340 but got 99999 +FAIL --pf flip-block flip-start assert_equals: offsetLeft expected 340 but got 99999 +FAIL --pf flip-start flip-block flip-inline assert_equals: offsetLeft expected 340 but got 99999 +FAIL --pf flip-start flip-inline flip-block assert_equals: offsetLeft expected 340 but got 99999 +FAIL --pf flip-inline flip-block flip-start assert_equals: offsetLeft expected 340 but got 99999 +FAIL --pf flip-block flip-inline flip-start assert_equals: offsetLeft expected 340 but got 99999 diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-margin-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-margin-expected.txt index 0e782d7a47192..285d82cbb234b 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-margin-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-margin-expected.txt @@ -1,10 +1,10 @@ -FAIL CSS Anchor Positioning: try-tactic (margin) assert_equals: offsetLeft expected 45 but got 99999 -FAIL CSS Anchor Positioning: try-tactic (margin) 1 assert_equals: offsetLeft expected 45 but got 99999 -FAIL CSS Anchor Positioning: try-tactic (margin) 2 assert_equals: offsetLeft expected 325 but got 99999 -FAIL CSS Anchor Positioning: try-tactic (margin) 3 assert_equals: offsetLeft expected 325 but got 99999 -FAIL CSS Anchor Positioning: try-tactic (margin) 4 assert_equals: offsetLeft expected 25 but got 99999 -FAIL CSS Anchor Positioning: try-tactic (margin) 5 assert_equals: offsetLeft expected 335 but got 99999 -FAIL CSS Anchor Positioning: try-tactic (margin) 6 assert_equals: offsetLeft expected 25 but got 99999 -FAIL CSS Anchor Positioning: try-tactic (margin) 7 assert_equals: offsetLeft expected 335 but got 99999 +FAIL --pf assert_equals: offsetLeft expected 45 but got 99999 +FAIL --pf flip-block assert_equals: offsetLeft expected 45 but got 99999 +FAIL --pf flip-inline assert_equals: offsetLeft expected 325 but got 99999 +FAIL --pf flip-block flip-inline assert_equals: offsetLeft expected 325 but got 99999 +FAIL --pf flip-start assert_equals: offsetLeft expected 25 but got 99999 +FAIL --pf flip-block flip-start assert_equals: offsetLeft expected 335 but got 99999 +FAIL --pf flip-inline flip-start assert_equals: offsetLeft expected 25 but got 99999 +FAIL --pf flip-block flip-inline flip-start assert_equals: offsetLeft expected 335 but got 99999 diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-borders/tentative/parsing/corner-shape-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-borders/tentative/parsing/corner-shape-computed-expected.txt index b7884f0338652..2bb508f5ae3d2 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-borders/tentative/parsing/corner-shape-computed-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-borders/tentative/parsing/corner-shape-computed-expected.txt @@ -1,28 +1,28 @@ -FAIL Property corner-top-left-shape value 'round' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'scoop' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'superellipse(5)' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'superellipse(0.2)' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'superellipse(0)' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'superellipse(infinity)' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'superellipse(2)' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'superellipse(1)' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'superellipse(4)' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-left-shape value 'superellipse( .5)' assert_true: corner-top-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-right-shape value 'round' assert_true: corner-top-right-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-top-right-shape value 'superellipse(5)' assert_true: corner-top-right-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-bottom-right-shape value 'scoop' assert_true: corner-bottom-right-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-bottom-left-shape value 'superellipse(5)' assert_true: corner-bottom-left-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'superellipse(5) round' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'round' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'bevel superellipse(0.1) round squircle' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'superellipse(0.1) superellipse(3) superellipse(7) superellipse(0.1)' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'round round round round' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'round scoop' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'round scoop round scoop' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'bevel superellipse(2)' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'superellipse(0.5) superellipse(3) straight' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'superellipse(0.5) superellipse(3) superellipse(1)' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'bevel superellipse(2) squircle round' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false -FAIL Property corner-shape value 'superellipse(0.5) superellipse(3) superellipse(1) superellipse(infinity)' assert_true: corner-shape doesn't seem to be supported in the computed style expected true got false +PASS Property corner-top-left-shape value 'round' +PASS Property corner-top-left-shape value 'scoop' +FAIL Property corner-top-left-shape value 'superellipse(5)' assert_true: 'superellipse(5)' is a supported value for corner-top-left-shape. expected true got false +FAIL Property corner-top-left-shape value 'superellipse(0.2)' assert_true: 'superellipse(0.2)' is a supported value for corner-top-left-shape. expected true got false +FAIL Property corner-top-left-shape value 'superellipse(0)' assert_true: 'superellipse(0)' is a supported value for corner-top-left-shape. expected true got false +FAIL Property corner-top-left-shape value 'superellipse(infinity)' assert_true: 'superellipse(infinity)' is a supported value for corner-top-left-shape. expected true got false +FAIL Property corner-top-left-shape value 'superellipse(2)' assert_true: 'superellipse(2)' is a supported value for corner-top-left-shape. expected true got false +FAIL Property corner-top-left-shape value 'superellipse(1)' assert_true: 'superellipse(1)' is a supported value for corner-top-left-shape. expected true got false +FAIL Property corner-top-left-shape value 'superellipse(4)' assert_true: 'superellipse(4)' is a supported value for corner-top-left-shape. expected true got false +FAIL Property corner-top-left-shape value 'superellipse( .5)' assert_true: 'superellipse( .5)' is a supported value for corner-top-left-shape. expected true got false +PASS Property corner-top-right-shape value 'round' +FAIL Property corner-top-right-shape value 'superellipse(5)' assert_true: 'superellipse(5)' is a supported value for corner-top-right-shape. expected true got false +PASS Property corner-bottom-right-shape value 'scoop' +FAIL Property corner-bottom-left-shape value 'superellipse(5)' assert_true: 'superellipse(5)' is a supported value for corner-bottom-left-shape. expected true got false +FAIL Property corner-shape value 'superellipse(5) round' assert_true: 'superellipse(5) round' is a supported value for corner-shape. expected true got false +PASS Property corner-shape value 'round' +FAIL Property corner-shape value 'bevel superellipse(0.1) round squircle' assert_true: 'bevel superellipse(0.1) round squircle' is a supported value for corner-shape. expected true got false +FAIL Property corner-shape value 'superellipse(0.1) superellipse(3) superellipse(7) superellipse(0.1)' assert_true: 'superellipse(0.1) superellipse(3) superellipse(7) superellipse(0.1)' is a supported value for corner-shape. expected true got false +PASS Property corner-shape value 'round round round round' +PASS Property corner-shape value 'round scoop' +PASS Property corner-shape value 'round scoop round scoop' +FAIL Property corner-shape value 'bevel superellipse(2)' assert_true: 'bevel superellipse(2)' is a supported value for corner-shape. expected true got false +FAIL Property corner-shape value 'superellipse(0.5) superellipse(3) straight' assert_true: 'superellipse(0.5) superellipse(3) straight' is a supported value for corner-shape. expected true got false +FAIL Property corner-shape value 'superellipse(0.5) superellipse(3) superellipse(1)' assert_true: 'superellipse(0.5) superellipse(3) superellipse(1)' is a supported value for corner-shape. expected true got false +FAIL Property corner-shape value 'bevel superellipse(2) squircle round' assert_true: 'bevel superellipse(2) squircle round' is a supported value for corner-shape. expected true got false +FAIL Property corner-shape value 'superellipse(0.5) superellipse(3) superellipse(1) superellipse(infinity)' assert_true: 'superellipse(0.5) superellipse(3) superellipse(1) superellipse(infinity)' is a supported value for corner-shape. expected true got false diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-borders/tentative/parsing/corner-shape-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-borders/tentative/parsing/corner-shape-valid-expected.txt index 2d186fbd4c99f..2aa63a49d7018 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-borders/tentative/parsing/corner-shape-valid-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-borders/tentative/parsing/corner-shape-valid-expected.txt @@ -1,10 +1,10 @@ -FAIL e.style['corner-top-left-shape'] = "round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-left-shape'] = "scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-left-shape'] = "notch" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-left-shape'] = "bevel" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-top-left-shape'] = "round" should set the property value +PASS e.style['corner-top-left-shape'] = "scoop" should set the property value +PASS e.style['corner-top-left-shape'] = "notch" should set the property value +PASS e.style['corner-top-left-shape'] = "bevel" should set the property value FAIL e.style['corner-top-left-shape'] = "squircle" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-left-shape'] = "straight" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-top-left-shape'] = "straight" should set the property value FAIL e.style['corner-top-left-shape'] = "superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-top-left-shape'] = "superellipse(.5)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-top-left-shape'] = "superellipse(7)" should set the property value assert_not_equals: property should be set got disallowed value "" @@ -13,12 +13,12 @@ FAIL e.style['corner-top-left-shape'] = "superellipse( 0)" should set the prope FAIL e.style['corner-top-left-shape'] = "superellipse(2 )" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-top-left-shape'] = "superellipse(infinity)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-top-left-shape'] = "superellipse(calc(0.5 * 4))" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-right-shape'] = "round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-right-shape'] = "scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-right-shape'] = "notch" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-right-shape'] = "bevel" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-top-right-shape'] = "round" should set the property value +PASS e.style['corner-top-right-shape'] = "scoop" should set the property value +PASS e.style['corner-top-right-shape'] = "notch" should set the property value +PASS e.style['corner-top-right-shape'] = "bevel" should set the property value FAIL e.style['corner-top-right-shape'] = "squircle" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-top-right-shape'] = "straight" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-top-right-shape'] = "straight" should set the property value FAIL e.style['corner-top-right-shape'] = "superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-top-right-shape'] = "superellipse(.5)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-top-right-shape'] = "superellipse(7)" should set the property value assert_not_equals: property should be set got disallowed value "" @@ -27,12 +27,12 @@ FAIL e.style['corner-top-right-shape'] = "superellipse( 0)" should set the prop FAIL e.style['corner-top-right-shape'] = "superellipse(2 )" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-top-right-shape'] = "superellipse(infinity)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-top-right-shape'] = "superellipse(calc(0.5 * 4))" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-left-shape'] = "round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-left-shape'] = "scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-left-shape'] = "notch" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-left-shape'] = "bevel" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-bottom-left-shape'] = "round" should set the property value +PASS e.style['corner-bottom-left-shape'] = "scoop" should set the property value +PASS e.style['corner-bottom-left-shape'] = "notch" should set the property value +PASS e.style['corner-bottom-left-shape'] = "bevel" should set the property value FAIL e.style['corner-bottom-left-shape'] = "squircle" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-left-shape'] = "straight" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-bottom-left-shape'] = "straight" should set the property value FAIL e.style['corner-bottom-left-shape'] = "superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-bottom-left-shape'] = "superellipse(.5)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-bottom-left-shape'] = "superellipse(7)" should set the property value assert_not_equals: property should be set got disallowed value "" @@ -41,12 +41,12 @@ FAIL e.style['corner-bottom-left-shape'] = "superellipse( 0)" should set the pr FAIL e.style['corner-bottom-left-shape'] = "superellipse(2 )" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-bottom-left-shape'] = "superellipse(infinity)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-bottom-left-shape'] = "superellipse(calc(0.5 * 4))" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-right-shape'] = "round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-right-shape'] = "scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-right-shape'] = "notch" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-right-shape'] = "bevel" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-bottom-right-shape'] = "round" should set the property value +PASS e.style['corner-bottom-right-shape'] = "scoop" should set the property value +PASS e.style['corner-bottom-right-shape'] = "notch" should set the property value +PASS e.style['corner-bottom-right-shape'] = "bevel" should set the property value FAIL e.style['corner-bottom-right-shape'] = "squircle" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-bottom-right-shape'] = "straight" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-bottom-right-shape'] = "straight" should set the property value FAIL e.style['corner-bottom-right-shape'] = "superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-bottom-right-shape'] = "superellipse(.5)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-bottom-right-shape'] = "superellipse(7)" should set the property value assert_not_equals: property should be set got disallowed value "" @@ -55,12 +55,12 @@ FAIL e.style['corner-bottom-right-shape'] = "superellipse( 0)" should set the p FAIL e.style['corner-bottom-right-shape'] = "superellipse(2 )" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-bottom-right-shape'] = "superellipse(infinity)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-bottom-right-shape'] = "superellipse(calc(0.5 * 4))" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-start-shape'] = "round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-start-shape'] = "scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-start-shape'] = "notch" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-start-shape'] = "bevel" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-start-start-shape'] = "round" should set the property value +PASS e.style['corner-start-start-shape'] = "scoop" should set the property value +PASS e.style['corner-start-start-shape'] = "notch" should set the property value +PASS e.style['corner-start-start-shape'] = "bevel" should set the property value FAIL e.style['corner-start-start-shape'] = "squircle" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-start-shape'] = "straight" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-start-start-shape'] = "straight" should set the property value FAIL e.style['corner-start-start-shape'] = "superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-start-start-shape'] = "superellipse(.5)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-start-start-shape'] = "superellipse(7)" should set the property value assert_not_equals: property should be set got disallowed value "" @@ -69,12 +69,12 @@ FAIL e.style['corner-start-start-shape'] = "superellipse( 0)" should set the pr FAIL e.style['corner-start-start-shape'] = "superellipse(2 )" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-start-start-shape'] = "superellipse(infinity)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-start-start-shape'] = "superellipse(calc(0.5 * 4))" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-end-shape'] = "round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-end-shape'] = "scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-end-shape'] = "notch" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-end-shape'] = "bevel" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-start-end-shape'] = "round" should set the property value +PASS e.style['corner-start-end-shape'] = "scoop" should set the property value +PASS e.style['corner-start-end-shape'] = "notch" should set the property value +PASS e.style['corner-start-end-shape'] = "bevel" should set the property value FAIL e.style['corner-start-end-shape'] = "squircle" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-start-end-shape'] = "straight" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-start-end-shape'] = "straight" should set the property value FAIL e.style['corner-start-end-shape'] = "superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-start-end-shape'] = "superellipse(.5)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-start-end-shape'] = "superellipse(7)" should set the property value assert_not_equals: property should be set got disallowed value "" @@ -83,12 +83,12 @@ FAIL e.style['corner-start-end-shape'] = "superellipse( 0)" should set the prop FAIL e.style['corner-start-end-shape'] = "superellipse(2 )" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-start-end-shape'] = "superellipse(infinity)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-start-end-shape'] = "superellipse(calc(0.5 * 4))" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-start-shape'] = "round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-start-shape'] = "scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-start-shape'] = "notch" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-start-shape'] = "bevel" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-end-start-shape'] = "round" should set the property value +PASS e.style['corner-end-start-shape'] = "scoop" should set the property value +PASS e.style['corner-end-start-shape'] = "notch" should set the property value +PASS e.style['corner-end-start-shape'] = "bevel" should set the property value FAIL e.style['corner-end-start-shape'] = "squircle" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-start-shape'] = "straight" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-end-start-shape'] = "straight" should set the property value FAIL e.style['corner-end-start-shape'] = "superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-end-start-shape'] = "superellipse(.5)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-end-start-shape'] = "superellipse(7)" should set the property value assert_not_equals: property should be set got disallowed value "" @@ -97,12 +97,12 @@ FAIL e.style['corner-end-start-shape'] = "superellipse( 0)" should set the prop FAIL e.style['corner-end-start-shape'] = "superellipse(2 )" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-end-start-shape'] = "superellipse(infinity)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-end-start-shape'] = "superellipse(calc(0.5 * 4))" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-end-shape'] = "round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-end-shape'] = "scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-end-shape'] = "notch" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-end-shape'] = "bevel" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-end-end-shape'] = "round" should set the property value +PASS e.style['corner-end-end-shape'] = "scoop" should set the property value +PASS e.style['corner-end-end-shape'] = "notch" should set the property value +PASS e.style['corner-end-end-shape'] = "bevel" should set the property value FAIL e.style['corner-end-end-shape'] = "squircle" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-end-end-shape'] = "straight" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-end-end-shape'] = "straight" should set the property value FAIL e.style['corner-end-end-shape'] = "superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-end-end-shape'] = "superellipse(.5)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-end-end-shape'] = "superellipse(7)" should set the property value assert_not_equals: property should be set got disallowed value "" @@ -111,9 +111,9 @@ FAIL e.style['corner-end-end-shape'] = "superellipse( 0)" should set the proper FAIL e.style['corner-end-end-shape'] = "superellipse(2 )" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-end-end-shape'] = "superellipse(infinity)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-end-end-shape'] = "superellipse(calc(0.5 * 4))" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-shape'] = "round round round round" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-shape'] = "round scoop" should set the property value assert_not_equals: property should be set got disallowed value "" -FAIL e.style['corner-shape'] = "round scoop round scoop" should set the property value assert_not_equals: property should be set got disallowed value "" +PASS e.style['corner-shape'] = "round round round round" should set the property value +PASS e.style['corner-shape'] = "round scoop" should set the property value +PASS e.style['corner-shape'] = "round scoop round scoop" should set the property value FAIL e.style['corner-shape'] = "bevel superellipse(2)" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-shape'] = "superellipse(0.5) superellipse(3) straight" should set the property value assert_not_equals: property should be set got disallowed value "" FAIL e.style['corner-shape'] = "superellipse(0.5) superellipse(3) superellipse(1)" should set the property value assert_not_equals: property should be set got disallowed value "" diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt index 74ebf7b10d867..d01daa2aaa313 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt @@ -8,6 +8,7 @@ PASS align-items PASS align-self PASS alignment-baseline PASS anchor-name +PASS anchor-scope PASS animation-composition PASS animation-delay PASS animation-direction @@ -114,6 +115,14 @@ PASS container-type PASS content PASS content-visibility PASS continue +PASS corner-bottom-left-shape +PASS corner-bottom-right-shape +PASS corner-end-end-shape +PASS corner-end-start-shape +PASS corner-start-end-shape +PASS corner-start-start-shape +PASS corner-top-left-shape +PASS corner-top-right-shape PASS counter-increment PASS counter-reset PASS counter-set diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-background-properties.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-background-properties.html index 431fba1330eb0..81876c6ecc1de 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-background-properties.html +++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-background-properties.html @@ -6,7 +6,7 @@ - + + + + + + + diff --git a/LayoutTests/platform/glib/damage/basic-propagation-002-expected.txt b/LayoutTests/platform/glib/damage/basic-propagation-002-expected.txt new file mode 100644 index 0000000000000..7ef22e9a431ad --- /dev/null +++ b/LayoutTests/platform/glib/damage/basic-propagation-002-expected.txt @@ -0,0 +1 @@ +PASS diff --git a/LayoutTests/platform/glib/damage/basic-propagation-002.html b/LayoutTests/platform/glib/damage/basic-propagation-002.html new file mode 100644 index 0000000000000..e6ef865b23419 --- /dev/null +++ b/LayoutTests/platform/glib/damage/basic-propagation-002.html @@ -0,0 +1,55 @@ + + + + + + + + + + + diff --git a/LayoutTests/platform/glib/damage/common.css b/LayoutTests/platform/glib/damage/common.css new file mode 100644 index 0000000000000..699a279c1b425 --- /dev/null +++ b/LayoutTests/platform/glib/damage/common.css @@ -0,0 +1,3 @@ +body { + margin: 0; +} diff --git a/LayoutTests/platform/glib/damage/common.js b/LayoutTests/platform/glib/damage/common.js new file mode 100644 index 0000000000000..c19b3ad16e73c --- /dev/null +++ b/LayoutTests/platform/glib/damage/common.js @@ -0,0 +1,134 @@ +function failTest(errorMessage) { + if (window.testRunner) { + document.body.innerText = errorMessage; + testRunner.notifyDone(); + } else { + console.error(errorMessage); + } +} + +function setupTestCase(options = {}) { + if (window.testRunner) { + testRunner.waitUntilDone(); + testRunner.dumpAsText(); + if (options.disableConsoleLog) + console.log = () => {}; + + if (!window.internals) { + failTest("FAIL: this test case requires internals"); + } else if (window.internals.getCurrentDamagePropagation() != "Region") { + failTest("FAIL: this test case requires proper damage propagation"); + } else { + try { + window.internals.getFrameDamageHistory(); + } catch (error) { + failTest(`FAIL: ${error.name} - ${error.message}`); + } + } + } +} + +var failure = null; + +function assert(condition, failureMessage) { + if (failure) + return false; + if (!condition) { + failure = failureMessage; + return false; + } + return true; +} + +function assertValid(damage) { + if (!assert(damage, "damage is empty")) + return; + assert(damage.isValid, "damage is invalid"); +} + +function assertRectsEq(damageRects, expectedRects) { + const rectCompareFunction = (a, b) => { + for (var i = 0; i < 4; i++) { + if (a[i] != b[i]) + return a[i] - b[i]; + } + return 0; + }; + damageRects.sort(rectCompareFunction); + expectedRects.sort(rectCompareFunction); + const damageRectsStr = JSON.stringify(damageRects); + const expectedRectsStr = JSON.stringify(expectedRects); + assert( + damageRectsStr == expectedRectsStr, + `damage rects mismatch, expected: ${expectedRectsStr} but got: ${damageRectsStr}` + ); +} + +function processAnimationFrameSequence(callbackSequence, callbackIndex) { + if (callbackSequence.length <= callbackIndex) { + if (window.testRunner) { + document.body.innerText = "PASS"; + testRunner.notifyDone(); + } else + console.log("PASS"); + return; + } + requestAnimationFrame(() => { + console.log("Processing requestAnimationFrame callback #" + callbackIndex); + callbackSequence[callbackIndex](); + if (failure) { + failTest(`FAIL: ${failure}`); + return; + } + processAnimationFrameSequence(callbackSequence, callbackIndex + 1); + }); +} + +function allFramesDamages() { + const damageDetails = window.internals.getFrameDamageHistory(); + return _simplifyDamages(damageDetails); +} + +function latestFrameDamage() { + var damages = allFramesDamages(); + if (damages.length == 0) + return null; + return damages.at(-1); +} + +function log(entity) { + console.log(JSON.stringify(entity)); +} + +function createNewElementWithClass(elementName, className, lambda = (el) => {}) { + var newElement = document.createElement(elementName); + newElement.className = className; + lambda(newElement); + return newElement; +} + +function spawnNewElementWithClass(elementName, className, lambda = (el) => {}) { + var newElement = createNewElementWithClass(elementName, className, lambda); + document.body.appendChild(newElement); + return newElement; +} + +function _simplifyDamages(damages) { + return damages.map(damage => _simplifyDamage(damage)); +} + +function _simplifyDamage(damage) { + var obj = { + isValid: damage.isValid, + bounds: _simplifyDamageRect(damage.bounds), + rects: damage.rects.map(r => _simplifyDamageRect(r)), + }; + obj.toStr = function () { + return JSON.stringify(this); + }; + return obj; +} + +function _simplifyDamageRect(damageRect) { + return [damageRect.x, damageRect.y, damageRect.width, damageRect.height]; +} diff --git a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt b/LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt index 4a781e829c7cd..c9140fa486625 100644 --- a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt +++ b/LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt @@ -8,6 +8,7 @@ PASS align-items PASS align-self PASS alignment-baseline PASS anchor-name +PASS anchor-scope PASS animation-composition PASS animation-delay PASS animation-direction diff --git a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt index 0536a1d3a5a4b..709b9edf8adb2 100644 --- a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt +++ b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt @@ -8,6 +8,7 @@ PASS align-items PASS align-self PASS alignment-baseline PASS anchor-name +PASS anchor-scope PASS animation-composition PASS animation-delay PASS animation-direction @@ -114,6 +115,14 @@ PASS container-type PASS content PASS content-visibility PASS continue +PASS corner-bottom-left-shape +PASS corner-bottom-right-shape +PASS corner-end-end-shape +PASS corner-end-start-shape +PASS corner-start-end-shape +PASS corner-start-start-shape +PASS corner-top-left-shape +PASS corner-top-right-shape PASS counter-increment PASS counter-reset PASS counter-set diff --git a/LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt b/LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt index 5a892636fbc2e..a2c0758283744 100644 --- a/LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt +++ b/LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt @@ -8,6 +8,7 @@ PASS align-items PASS align-self PASS alignment-baseline PASS anchor-name +PASS anchor-scope PASS animation-composition PASS animation-delay PASS animation-direction diff --git a/LayoutTests/platform/mac-ventura-wk1/TestExpectations b/LayoutTests/platform/mac-ventura-wk1/TestExpectations deleted file mode 100644 index 3b4f271236139..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/TestExpectations +++ /dev/null @@ -1,7 +0,0 @@ -webkit.org/b/267710 imported/w3c/web-platform-tests/accname/name/comp_host_language_label.html [ Failure ] - -# webkit.org/b/271916 [ Ventura WK1 Release ] 3x media/track/track and http/tests/media/hls/hls-we bvtt-flashing.html are constant timeout -http/tests/media/hls/hls-webvtt-flashing.html [ Timeout ] -media/track/track-in-band-cues-added-once.html [ Timeout ] -media/track/track-in-band-layout.html [ Timeout Failure ] -media/track/track-paint-on-captions.html [ Timeout ] \ No newline at end of file diff --git a/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt b/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt deleted file mode 100644 index d2492d2acc068..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt +++ /dev/null @@ -1,29 +0,0 @@ - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 785.00 2016.00) - (children 1 - (GraphicsLayer - (bounds 785.00 2016.00) - (contentsOpaque 1) - (children 2 - (GraphicsLayer - (offsetFromRenderer width=-14 height=-14) - (position 14.00 14.00) - (bounds 432.00 332.00) - (drawsContent 1) - (repaint rects - (rect 16.00 16.00 400.00 300.00) - (rect 24.00 16.00 100.00 8.00) - ) - ) - (GraphicsLayer - (position 8.00 369.00) - (anchor 1.00 1.00) - (bounds 1.00 1.00) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt b/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt deleted file mode 100644 index 734719a56b222..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt +++ /dev/null @@ -1,64 +0,0 @@ - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 785.00 2016.00) - (children 1 - (GraphicsLayer - (bounds 785.00 2016.00) - (contentsOpaque 1) - (children 2 - (GraphicsLayer - (offsetFromRenderer width=-14 height=-14) - (position 14.00 14.00) - (bounds 432.00 332.00) - (drawsContent 1) - (repaint rects - (rect 16.00 16.00 400.00 300.00) - ) - (children 1 - (GraphicsLayer - (position 16.00 16.00) - (children 1 - (GraphicsLayer - (anchor 0.00 0.00) - (bounds 400.00 300.00) - (children 1 - (GraphicsLayer - (position 0.00 -100.00) - (anchor 0.00 0.00) - (children 1 - (GraphicsLayer - (anchor 0.00 0.00) - (bounds 400.00 1016.00) - (children 1 - (GraphicsLayer - (bounds 400.00 1016.00) - (drawsContent 1) - (children 1 - (GraphicsLayer - (position 8.00 8.00) - (bounds 100.00 100.00) - (contentsOpaque 1) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (GraphicsLayer - (position 8.00 369.00) - (anchor 1.00 1.00) - (bounds 1.00 1.00) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt b/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt deleted file mode 100644 index 30d8391e08ca2..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt +++ /dev/null @@ -1,68 +0,0 @@ - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 785.00 2016.00) - (children 1 - (GraphicsLayer - (bounds 785.00 2016.00) - (contentsOpaque 1) - (children 2 - (GraphicsLayer - (offsetFromRenderer width=-14 height=-14) - (position 14.00 14.00) - (bounds 432.00 332.00) - (drawsContent 1) - (repaint rects - (rect 16.00 16.00 400.00 300.00) - ) - (children 1 - (GraphicsLayer - (position 16.00 16.00) - (children 1 - (GraphicsLayer - (anchor 0.00 0.00) - (bounds 400.00 300.00) - (children 1 - (GraphicsLayer - (position 0.00 -100.00) - (anchor 0.00 0.00) - (children 1 - (GraphicsLayer - (anchor 0.00 0.00) - (bounds 400.00 1016.00) - (children 1 - (GraphicsLayer - (bounds 400.00 1016.00) - (drawsContent 1) - (repaint rects - (rect 8.00 8.00 100.00 100.00) - ) - (children 1 - (GraphicsLayer - (position 8.00 108.00) - (bounds 100.00 100.00) - (contentsOpaque 1) - (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [100.00 0.00 0.00 1.00]) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (GraphicsLayer - (position 8.00 369.00) - (anchor 1.00 1.00) - (bounds 1.00 1.00) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/inserting/caret-position-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/inserting/caret-position-expected.txt deleted file mode 100644 index 819d2d485acc0..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/inserting/caret-position-expected.txt +++ /dev/null @@ -1,26 +0,0 @@ - -Right aligned div. -x - -RTL div. -a - -0px right padding RTL textarea. - -LTR div and textarea. -a - - -NO WRAPPING -No wrapping right aligned div. - -No wrapping RTL div. -a - -No wrapping 0px right padding RTL textarea. - -No wrapping LTR div and textarea. -a - - - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/anchor-element-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/anchor-element-expected.txt deleted file mode 100644 index fc0da96152d74..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/anchor-element-expected.txt +++ /dev/null @@ -1,40 +0,0 @@ -Input: -webkit.org - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[webkit.org] - NSColor: #0000ee (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSLink: https://webkit.org/ - NSStrokeColor: #0000ee (sRGB) - NSStrokeWidth: 0 - NSUnderline: true -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attrib-string-colors-with-color-filter-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attrib-string-colors-with-color-filter-expected.txt deleted file mode 100644 index e90c9b8c81520..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attrib-string-colors-with-color-filter-expected.txt +++ /dev/null @@ -1,54 +0,0 @@ -Input: -
- This text is blue - This text is yellow -
- -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[This text is blue] - NSBackgroundColor: #eeeeee (sRGB) - NSColor: #0000ff (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #0000ff (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[This text is yellow] - NSBackgroundColor: #800000 (sRGB) - NSColor: #ffff00 (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #ffff00 (sRGB) - NSStrokeWidth: 0 -[\n] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attribute-string-for-copy-with-color-filter-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attribute-string-for-copy-with-color-filter-expected.txt deleted file mode 100644 index cb775e17d49a9..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attribute-string-for-copy-with-color-filter-expected.txt +++ /dev/null @@ -1,33 +0,0 @@ -Test that an NSAttributedString for copy doesn't convert colors through -apple-color-filter. - -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[is] - NSBackgroundColor: #336699 (sRGB) - NSColor: #cccccc (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #cccccc (sRGB) - NSStrokeWidth: 0 - - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1-expected.txt deleted file mode 100644 index 14b9c0dea4be6..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1-expected.txt +++ /dev/null @@ -1,42 +0,0 @@ -Input: -hello <#shadow-start> WebKit<#shadow-end>world rocks - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[hello ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[world] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ WebKit rocks] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2-expected.txt deleted file mode 100644 index 193a6685b2190..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2-expected.txt +++ /dev/null @@ -1,37 +0,0 @@ -Input: -hello <#shadow-start> WebKit<#shadow-end><#start>world rocks<#end> - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[world] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ WebKit rocks] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3-expected.txt deleted file mode 100644 index 7c91ee662b4ef..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3-expected.txt +++ /dev/null @@ -1,37 +0,0 @@ -Input: -<#shadow-start>hello <#shadow-end><#start>world WebKit rocks<#end> - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[world WebKit] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ rocks] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4-expected.txt deleted file mode 100644 index 2dc544cd4df87..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4-expected.txt +++ /dev/null @@ -1,37 +0,0 @@ -Input: -<#shadow-start><#start>hello <#shadow-end>world Web<#end>Kit rocks - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[hello ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[world Web] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5-expected.txt deleted file mode 100644 index 9baeb6a7098b9..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5-expected.txt +++ /dev/null @@ -1,42 +0,0 @@ -Input: -<#start><#shadow-start>hello <#shadow-end>world WebKit<#end> - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[hello ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[world] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ WebKit] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1-expected.txt deleted file mode 100644 index a27e80b1d1259..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1-expected.txt +++ /dev/null @@ -1,43 +0,0 @@ -Input: -<#start>hello <#shadow-start> Web<#end>Kit<#shadow-end>world rocks - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[hello ] - NSFont: Times-Bold 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[world] - NSColor: #0000ff (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #0000ff (sRGB) - NSStrokeWidth: 0 -[ Web] - NSFont: Times-Bold 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt deleted file mode 100644 index 4d394341e4f80..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt +++ /dev/null @@ -1,44 +0,0 @@ -Input: -<#start>
<#shadow-start> world<#shadow-end>hello
<#shadow-start>WebKit <#end><#shadow-end>rocks
- -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[hello] - NSColor: #0000ff (sRGB) - NSFont: Times-BoldItalic 16.00 pt. - NSKern: 0pt - NSStrokeColor: #0000ff (sRGB) - NSStrokeWidth: 0 -[ world\n] - NSFont: Times-Italic 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[WebKit ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - NSUnderline: true - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-for-typing-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-for-typing-expected.txt deleted file mode 100644 index 749f418b6af08..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-for-typing-expected.txt +++ /dev/null @@ -1,43 +0,0 @@ -Some text here -Input: -
Some text here
- -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: ( 28L, - 56L, - 84L, - 112L, - 140L, - 168L, - 196L, - 224L, - 252L, - 280L, - 308L, - 336L -) - DefaultTabInterval: 0 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: -1 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[ ] - NSColor: rgba(23, 45, 56, 0.4) (sRGB) - NSFont: Times-Roman 16.00 pt. - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt deleted file mode 100644 index f1704f60321bf..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt +++ /dev/null @@ -1,44 +0,0 @@ -Some text here -Input: -
Some text here
- -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: ( 28L, - 56L, - 84L, - 112L, - 140L, - 168L, - 196L, - 224L, - 252L, - 280L, - 308L, - 336L -) - DefaultTabInterval: 0 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: -1 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[ ] - NSBackgroundColor: #5c5c5c (sRGB) - NSColor: rgba(239, 239, 239, 0.4) (sRGB) - NSFont: Times-Roman 16.00 pt. - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/basic-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/basic-expected.txt deleted file mode 100644 index e30ec4dd84ae4..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/basic-expected.txt +++ /dev/null @@ -1,101 +0,0 @@ -Input: -hello world WebKit.
-this is a test of attributed string. - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[hello ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[world] - NSBackgroundColor: #0000ff (sRGB) - NSColor: #ffffff (sRGB) - NSFont: Times-Bold 16.00 pt. - NSKern: 0pt - NSStrokeColor: #ffffff (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[WebKit] - NSColor: #0000ee (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSLink: https://webkit.org/ - NSStrokeColor: #0000ee (sRGB) - NSStrokeWidth: 0 - NSUnderline: true -[.\n] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[this is a ] - NSBackgroundColor: #ffff00 (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[t] - NSBackgroundColor: #ffff00 (sRGB) - NSFont: Times-Italic 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - NSUnderline: true -[est] - NSBackgroundColor: #ffff00 (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - NSUnderline: true -[ of ] - NSBackgroundColor: #ffff00 (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[attributed] - NSBackgroundColor: #ffff00 (sRGB) - NSFont: Times-Italic 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ string.] - NSBackgroundColor: #ffff00 (sRGB) - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/comment-cdata-section-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/comment-cdata-section-expected.txt deleted file mode 100644 index 842f5de3b6d7b..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/comment-cdata-section-expected.txt +++ /dev/null @@ -1,32 +0,0 @@ -Input: -hello world. - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[hello world. ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-size-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-size-expected.txt deleted file mode 100644 index d2f0a365b74b4..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-size-expected.txt +++ /dev/null @@ -1,126 +0,0 @@ -Input: -small element -xx-small -x-small -small -normal -large -x-large -xx-large -5pt -15pt - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[small element] - NSFont: Times-Roman 13.33 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[xx-small] - NSFont: Times-Roman 9.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[x-small] - NSFont: Times-Roman 10.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[small] - NSFont: Times-Roman 13.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ normal ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[large] - NSFont: Times-Roman 18.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[x-large] - NSFont: Times-Roman 24.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[xx-large] - NSFont: Times-Roman 32.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[5pt] - NSFont: Times-Roman 6.67 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[15pt] - NSFont: Times-Roman 20.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-style-variant-effect-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-style-variant-effect-expected.txt deleted file mode 100644 index 5e57c846a7107..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-style-variant-effect-expected.txt +++ /dev/null @@ -1,51 +0,0 @@ -Input: -italic -oblique -small-caps -outline -emboss - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[italic] - NSFont: Times-Italic 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[oblique] - NSFont: Times-Italic 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ small-caps outline emboss ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-weight-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-weight-expected.txt deleted file mode 100644 index 9c8ef904c4e6d..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/font-weight-expected.txt +++ /dev/null @@ -1,126 +0,0 @@ -Input: -bold -font weight 100 -font weight 200 -font weight 300 -font weight 400 -font weight 500 -font weight 600 -font weight 700 -font weight 800 -font weight 900 - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[bold] - NSFont: Times-Bold 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[font weight 100] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[font weight 200] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[font weight 300] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ font weight 400 ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[font weight 500] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[font weight 600] - NSFont: Times-Bold 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[font weight 700] - NSFont: Times-Bold 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[font weight 800] - NSFont: Times-Bold 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[font weight 900] - NSFont: Times-Bold 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/letter-spacing-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/letter-spacing-expected.txt deleted file mode 100644 index 933e6d28b7d6a..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/letter-spacing-expected.txt +++ /dev/null @@ -1,37 +0,0 @@ -Input: -3pt - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[3pt] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/text-decorations-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/text-decorations-expected.txt deleted file mode 100644 index b62af9f96260f..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/text-decorations-expected.txt +++ /dev/null @@ -1,51 +0,0 @@ -Input: -underline -strike -underline and strike - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[underline] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - NSUnderline: true -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[strike] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrikethrough: true - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[ underline and strike ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/vertical-align-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/vertical-align-expected.txt deleted file mode 100644 index ee89c1ec118a4..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/attributed-string/vertical-align-expected.txt +++ /dev/null @@ -1,75 +0,0 @@ -Input: -sup element -sub element -vertical align super -vertical align sub -vertical align 50% - -Output: -NSParagraphStyle: -Alignment 4 - LineSpacing: 0 - ParagraphSpacing: 0 - ParagraphSpacingBefore: 0 - HeadIndent: 0 - TailIndent: 0 - FirstLineHeadIndent: 0 - LineHeight: 0/0 - LineHeightMultiple: 0 - LineBreakMode: 0 - Tabs: () - DefaultTabInterval: 36 - Blocks: ( -) - Lists: ( -) - BaseWritingDirection: 0 - HyphenationFactor: 0 - TighteningForTruncation: YES - HeaderLevel: 0 LineBreakStrategy 0 PresentationIntents ( -) ListIntentOrdinal 0 CodeBlockIntentLanguageHint '' -[sup element] - NSFont: Times-Roman 13.33 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - NSSuperScript: 1 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[sub element] - NSFont: Times-Roman 13.33 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - NSSuperScript: -1 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[vertical align super] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - NSSuperScript: 1 -[ ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 -[vertical align sub] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - NSSuperScript: -1 -[ vertical align 50% ] - NSFont: Times-Roman 16.00 pt. - NSKern: 0pt - NSStrokeColor: #000000 (sRGB) - NSStrokeWidth: 0 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/caret-primary-bidi-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/caret-primary-bidi-expected.txt deleted file mode 100644 index 507bad9b21fc8..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/caret-primary-bidi-expected.txt +++ /dev/null @@ -1,87 +0,0 @@ -0: 8,564,0,28 -1: 21,564,0,28 -2: 36,564,0,28 -3: 49,564,0,28 -4: 155,564,0,28 -5: 141,564,0,28 -6: 85,564,0,28 -7: 101,564,0,28 -8: 116,564,0,28 -9: 131,564,0,28 -10: 73,564,0,28 -11: 56,564,0,28 -12: 170,564,0,28 -13: 185,564,0,28 -14: 199,564,0,28 -15: 208,564,0,28 -16: 8,536,0,28 -17: 114,536,0,28 -18: 101,536,0,28 -19: 45,536,0,28 -20: 60,536,0,28 -21: 75,536,0,28 -22: 90,536,0,28 -23: 33,536,0,28 -24: 16,536,0,28 -25: 130,536,0,28 -26: 8,508,0,28 -27: 141,508,0,28 -28: 127,508,0,28 -29: 117,508,0,28 -30: 33,508,0,28 -31: 16,508,0,28 -32: 156,508,0,28 -33: 8,480,0,28 -34: 32,480,0,28 -35: 18,480,0,28 -36: 47,480,0,28 -37: 61,480,0,28 -38: 76,480,0,28 -39: 88,480,0,28 -40: 113,480,0,28 -41: 96,480,0,28 -42: 125,480,0,28 -43: 791,452,0,28 -44: 765,452,0,28 -45: 780,452,0,28 -46: 751,452,0,28 -47: 736,452,0,28 -48: 722,452,0,28 -49: 712,452,0,28 -50: 682,452,0,28 -51: 697,452,0,28 -52: 667,452,0,28 -53: 655,452,0,28 -54: 637,452,0,28 -55: 630,452,0,28 -56: 608,452,0,28 -57: 621,452,0,28 -58: 592,452,0,28 -59: 791,424,0,28 -60: 777,424,0,28 -61: 763,424,0,28 -62: 753,424,0,28 -63: 722,424,0,28 -64: 738,424,0,28 -65: 707,424,0,28 -66: 695,424,0,28 -67: 678,424,0,28 -68: 670,424,0,28 -69: 791,396,0,28 -70: 777,396,0,28 -71: 763,396,0,28 -72: 753,396,0,28 -73: 669,396,0,28 -74: 652,396,0,28 -75: 644,396,0,28 -76: 791,368,0,28 -77: 765,368,0,28 -78: 780,368,0,28 -79: 751,368,0,28 -80: 736,368,0,28 -81: 722,368,0,28 -82: 712,368,0,28 -83: 690,368,0,28 -84: 703,368,0,28 -85: 675,368,0,28 - diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/firstrectforcharacterrange-plain-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/firstrectforcharacterrange-plain-expected.txt deleted file mode 100644 index bb02c7be120e8..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/firstrectforcharacterrange-plain-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -123456 -caret at the beginning: (0,0), (10,572,0,18) -caret after the first character: (1,0), (18,572,0,18) -caret at the end of line: (6,0), (58,572,0,18) -caret at the end of line: (6,100), (58,572,0,18) -first character: (0,1), (10,572,8,18) -last character: (5,1), (50,572,8,18) -last character: (5,2), (50,572,8,18) -last character: (5,100), (50,572,8,18) -first line: (0,6), (10,572,48,18) -first line: (0,7), (10,572,48,18) -first line: (0,4294967295), (10,572,48,18) -first line without the first character: (1,4294967295), (18,572,40,18) -out of bounds, clamped to the end: (7,0), (58,572,0,18) -out of bounds, clamped to the end: (1000,0), (58,572,0,18) -out of bounds, clamped to the end: (7,1), (58,572,0,18) -out of bounds, clamped to the end: (7,4294967295), (58,572,0,18) diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/firstrectforcharacterrange-styled-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/firstrectforcharacterrange-styled-expected.txt deleted file mode 100644 index bb02c7be120e8..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/mac/input/firstrectforcharacterrange-styled-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -123456 -caret at the beginning: (0,0), (10,572,0,18) -caret after the first character: (1,0), (18,572,0,18) -caret at the end of line: (6,0), (58,572,0,18) -caret at the end of line: (6,100), (58,572,0,18) -first character: (0,1), (10,572,8,18) -last character: (5,1), (50,572,8,18) -last character: (5,2), (50,572,8,18) -last character: (5,100), (50,572,8,18) -first line: (0,6), (10,572,48,18) -first line: (0,7), (10,572,48,18) -first line: (0,4294967295), (10,572,48,18) -first line without the first character: (1,4294967295), (18,572,40,18) -out of bounds, clamped to the end: (7,0), (58,572,0,18) -out of bounds, clamped to the end: (1000,0), (58,572,0,18) -out of bounds, clamped to the end: (7,1), (58,572,0,18) -out of bounds, clamped to the end: (7,4294967295), (58,572,0,18) diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/selection/5825350-2-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/selection/5825350-2-expected.txt deleted file mode 100644 index 14d00808597da..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/selection/5825350-2-expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -This tests for a bug where moving the caret right towards a non-editable pocket of an editable region would make the caret disappear. The caret should be just after the 'y' in "Sally". - -Caret: (80, 538) diff --git a/LayoutTests/platform/mac-ventura-wk1/editing/selection/mixed-editability-10-expected.txt b/LayoutTests/platform/mac-ventura-wk1/editing/selection/mixed-editability-10-expected.txt deleted file mode 100644 index b86edce126458..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/editing/selection/mixed-editability-10-expected.txt +++ /dev/null @@ -1,25 +0,0 @@ -#1 DIV element with a non-editable element only align center: - -Hello -#2 DIV element with a non-editable element only align left: - -Hello -#3 DIV element with a non-editable element only align right: - -Hello -#4 DIV element with two non-editable elementwith padding: - -Hello World -#5 DIV element empty - -#6 non editable DIV element with an editable empty span element - -Hello:  -Anchor ([object HTMLDivElement], 0 caret[40,540] refpos=40) is correct. -Anchor ([object HTMLDivElement], 3 caret[76,540] refpos=76) is correct. -Anchor ([object HTMLDivElement], 1 caret[44,472] refpos=44) is correct. -Anchor ([object HTMLDivElement], 0 caret[8,472] refpos=8) is correct. -Anchor ([object HTMLDivElement], 0 caret[72,404] refpos=72) is correct. -Anchor ([object HTMLDivElement], 3 caret[48,336] refpos=48) is correct. -Anchor ([object HTMLDivElement], 0 caret[58,268] refpos=58) is correct. -Anchor ([object HTMLSpanElement], 0 caret[0,600] refpos=0) is correct. diff --git a/LayoutTests/platform/mac-ventura-wk1/fast/forms/datalist/datalist-textinput-appearance-expected.txt b/LayoutTests/platform/mac-ventura-wk1/fast/forms/datalist/datalist-textinput-appearance-expected.txt deleted file mode 100644 index 2ae71bdd00b5e..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/fast/forms/datalist/datalist-textinput-appearance-expected.txt +++ /dev/null @@ -1,10 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x35 - RenderBlock {HTML} at (0,0) size 800x35 - RenderBody {BODY} at (8,8) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura-wk1/fast/replaced/replaced-breaking-expected.txt b/LayoutTests/platform/mac-ventura-wk1/fast/replaced/replaced-breaking-expected.txt deleted file mode 100644 index 3c47e61bf25d7..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/fast/replaced/replaced-breaking-expected.txt +++ /dev/null @@ -1,78 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DIV} at (0,0) size 32x468 [border: (1px solid #FF0000)] - RenderTextControl {INPUT} at (1,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTextControl {INPUT} at (1,20) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderImage {IMG} at (1,39) size 27x27 [border: (1px solid #000000)] - RenderImage {IMG} at (1,66) size 27x27 [border: (1px solid #000000)] - RenderText {#text} at (0,0) size 0x0 - RenderButton {INPUT} at (1,93) size 43x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 27x13 - RenderText at (0,0) size 27x13 - text run at (0,0) width 27: "input" - RenderButton {INPUT} at (1,111) size 43x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 27x13 - RenderText at (0,0) size 27x13 - text run at (0,0) width 27: "input" - RenderText {#text} at (0,0) size 0x0 - RenderButton {BUTTON} at (1,129) size 51x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText {#text} at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderButton {BUTTON} at (1,147) size 51x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText {#text} at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderText {#text} at (0,0) size 0x0 - RenderMenuList {SELECT} at (1,165) size 63x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 63x18 - RenderText at (8,2) size 32x13 - text run at (8,2) width 32: "select" - RenderMenuList {SELECT} at (1,183) size 63x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 63x18 - RenderText at (8,2) size 32x13 - text run at (8,2) width 32: "select" - RenderText {#text} at (0,0) size 0x0 - RenderListBox {SELECT} at (1,201) size 49x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderListBox {SELECT} at (1,244) size 49x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {INPUT} at (3,290) size 12x12 - RenderBlock {INPUT} at (3,308) size 12x12 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {INPUT} at (3,326) size 12x12 - RenderBlock {INPUT} at (3,344) size 12x12 - RenderText {#text} at (0,0) size 0x0 - RenderIFrame {IFRAME} at (1,359) size 27x27 [border: (1px solid #000000)] - layer at (0,0) size 25x25 - RenderView at (0,0) size 25x25 - layer at (0,0) size 25x25 - RenderBlock {HTML} at (0,0) size 25x25 - RenderBody {BODY} at (8,8) size 9x9 - RenderIFrame {IFRAME} at (1,386) size 27x27 [border: (1px solid #000000)] - layer at (0,0) size 25x25 - RenderView at (0,0) size 25x25 - layer at (0,0) size 25x25 - RenderBlock {HTML} at (0,0) size 25x25 - RenderBody {BODY} at (8,8) size 9x9 - RenderText {#text} at (0,0) size 0x0 - RenderEmbeddedObject {EMBED} at (1,413) size 27x27 [border: (1px solid #000000)] - layer at (0,0) size 25x25 - RenderView at (0,0) size 25x25 - layer at (0,0) size 25x25 - RenderBlock {HTML} at (0,0) size 25x25 - RenderBody {BODY} at (8,8) size 9x9 - RenderEmbeddedObject {EMBED} at (1,440) size 27x27 [border: (1px solid #000000)] - layer at (0,0) size 25x25 - RenderView at (0,0) size 25x25 - layer at (0,0) size 25x25 - RenderBlock {HTML} at (0,0) size 25x25 - RenderBody {BODY} at (8,8) size 9x9 - RenderText {#text} at (0,0) size 0x0 -layer at (12,12) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (12,31) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura-wk1/imported/w3c/web-platform-tests/css/css-tables/border-writing-mode-dynamic-001-expected.txt b/LayoutTests/platform/mac-ventura-wk1/imported/w3c/web-platform-tests/css/css-tables/border-writing-mode-dynamic-001-expected.txt deleted file mode 100644 index b0f5b083c183f..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/imported/w3c/web-platform-tests/css/css-tables/border-writing-mode-dynamic-001-expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -TABLE -TBODY -TR -TD - -PASS Table borders track writing mode changes - diff --git a/LayoutTests/platform/mac-ventura-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt b/LayoutTests/platform/mac-ventura-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt deleted file mode 100644 index ebbaca971b170..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt +++ /dev/null @@ -1,62 +0,0 @@ - - -PASS utility code -PASS application/octet-stream not supported -PASS fictional formats and codecs not supported -PASS audio/mp4 (optional) -PASS audio/mp4; codecs="mp4a.40.2" (optional) -PASS audio/mp4 with bogus codec -PASS audio/mp4 with and without codecs -FAIL audio/ogg (optional) assert_equals: audio/ogg expected "maybe" but got "" -FAIL audio/ogg; codecs="opus" (optional) assert_equals: audio/ogg; codecs="opus" expected "probably" but got "" -FAIL audio/ogg; codecs="vorbis" (optional) assert_equals: audio/ogg; codecs="vorbis" expected "probably" but got "" -PASS audio/ogg with bogus codec -PASS audio/ogg with and without codecs -PASS audio/wav (optional) -FAIL audio/wav; codecs="1" (optional) assert_equals: audio/wav; codecs="1" expected "probably" but got "" -PASS audio/wav with bogus codec -FAIL audio/wav with and without codecs assert_equals: expected false but got true -FAIL audio/webm (optional) assert_equals: audio/webm expected "maybe" but got "" -FAIL audio/webm; codecs="opus" (optional) assert_equals: audio/webm; codecs="opus" expected "probably" but got "" -FAIL audio/webm; codecs="vorbis" (optional) assert_equals: audio/webm; codecs="vorbis" expected "probably" but got "" -PASS audio/webm with bogus codec -PASS audio/webm with and without codecs -PASS video/3gpp (optional) -PASS video/3gpp; codecs="samr" (optional) -PASS video/3gpp; codecs="mp4v.20.8" (optional) -PASS video/3gpp codecs subset -PASS video/3gpp codecs order -PASS video/3gpp with bogus codec -PASS video/3gpp with and without codecs -PASS video/mp4 (optional) -PASS video/mp4; codecs="mp4a.40.2" (optional) -PASS video/mp4; codecs="avc1.42E01E" (optional) -PASS video/mp4; codecs="avc1.4D401E" (optional) -PASS video/mp4; codecs="avc1.58A01E" (optional) -PASS video/mp4; codecs="avc1.64001E" (optional) -PASS video/mp4; codecs="mp4v.20.8" (optional) -PASS video/mp4; codecs="mp4v.20.240" (optional) -PASS video/mp4 codecs subset -PASS video/mp4 codecs order -PASS video/mp4 with bogus codec -PASS video/mp4 with and without codecs -FAIL video/ogg (optional) assert_equals: video/ogg expected "maybe" but got "" -FAIL video/ogg; codecs="opus" (optional) assert_equals: video/ogg; codecs="opus" expected "probably" but got "" -FAIL video/ogg; codecs="vorbis" (optional) assert_equals: video/ogg; codecs="vorbis" expected "probably" but got "" -FAIL video/ogg; codecs="theora" (optional) assert_equals: video/ogg; codecs="theora" expected "probably" but got "" -PASS video/ogg codecs subset -PASS video/ogg codecs order -PASS video/ogg with bogus codec -PASS video/ogg with and without codecs -FAIL video/webm (optional) assert_equals: video/webm expected "maybe" but got "" -FAIL video/webm; codecs="opus" (optional) assert_equals: video/webm; codecs="opus" expected "probably" but got "" -FAIL video/webm; codecs="vorbis" (optional) assert_equals: video/webm; codecs="vorbis" expected "probably" but got "" -FAIL video/webm; codecs="vp8" (optional) assert_equals: video/webm; codecs="vp8" expected "probably" but got "" -FAIL video/webm; codecs="vp8.0" (optional) assert_equals: video/webm; codecs="vp8.0" expected "probably" but got "" -FAIL video/webm; codecs="vp9" (optional) assert_equals: video/webm; codecs="vp9" expected "probably" but got "" -FAIL video/webm; codecs="vp9.0" (optional) assert_equals: video/webm; codecs="vp9.0" expected "probably" but got "" -PASS video/webm codecs subset -PASS video/webm codecs order -PASS video/webm with bogus codec -PASS video/webm with and without codecs - diff --git a/LayoutTests/platform/mac-ventura-wk2/TestExpectations b/LayoutTests/platform/mac-ventura-wk2/TestExpectations deleted file mode 100644 index 8c610f6e34290..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/TestExpectations +++ /dev/null @@ -1,80 +0,0 @@ -# These are the layout test expectations for Apple's macOS Ventura port of WebKit. -# - -#////////////////////////////////////////////////////////////////////////////////////////// -# Platform-specific directories. Skipped globally, then re-enabled here. -#////////////////////////////////////////////////////////////////////////////////////////// - -# These tests require compile-time flags in WebKit that are only enabled in Sonoma. They were marked as Skip in -# https://bugs.webkit.org/show_bug.cgi?id=248545 — re-disable them here. -fast/images/animations-resume-from-last-displayed-frame.html [ Skip ] -fast/images/individual-animation-toggle.html [ Skip ] -fast/images/page-wide-animation-toggle.html [ Skip ] -fast/images/pagewide-play-pause-animateTransform-svg-animation.html [ Skip ] -fast/images/pagewide-play-pause-offscreen-animations.html [ Skip ] -fast/images/mac/play-all-pause-all-animations-context-menu-items.html [ Skip ] -fast/images/mac/animation-context-menu-items-presence.html [ Skip ] - -# Failing after OS migration rdar://112624778 (Migrate macOS Sonoma test expectations to OpenSource, add expectation files to Down-Levels (259373)) -http/tests/permissions/permission-status-onchange-event-service-worker.html [ Pass Timeout ] -imported/w3c/web-platform-tests/feature-policy/reporting/picture-in-picture-reporting.html [ Pass Failure ] -imported/w3c/web-platform-tests/fetch/range/non-matching-range-response.html [ Pass Failure ] -imported/w3c/web-platform-tests/resize-observer/callback-cross-realm-report-exception.html [ Pass Failure ] -media/media-session/actionHandler-no-document-leak.html [ Pass Failure ] -scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-non-cb-overflow.html [ Pass Failure ] -scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow.html [ Pass Failure ] -scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow2.html [ Pass Failure ] -storage/indexeddb/database-transaction-cycle.html [ Pass Failure ] -webgl/1.0.x/conformance/glsl/misc/shader-with-non-reserved-words-3-of-8.html [ Pass Timeout ] - -webkit.org/b/261444 [ Debug x86_64 ] http/tests/security/referrer-policy-header.html [ Pass Timeout ] - -# Asserts on pre-Sonoma macOS: rdar://116291539 -[ Debug ] http/tests/site-isolation/window-properties.html [ Skip ] - -# This feature was introduced in macOS Sonoma. -http/tests/paymentrequest/paymentrequest-applePayLaterAvailability.https.html [ Skip ] - -# webkit.org/b/263476 [ mac-wk2 ] Some WPTs exercising wheel actions interface timing out on pre-Sonoma macOS after 269632@main -imported/w3c/web-platform-tests/css/css-overscroll-behavior/overscroll-behavior.html [ Skip ] -imported/w3c/web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary.html [ Skip ] -imported/w3c/web-platform-tests/css/css-transforms/scroll-preserve-3d.html [ Skip ] -imported/w3c/web-platform-tests/dom/events/non-cancelable-when-passive/non-passive-mousewheel-event-listener-on-div.html [ Skip ] -imported/w3c/web-platform-tests/dom/events/non-cancelable-when-passive/non-passive-wheel-event-listener-on-div.html [ Skip ] -imported/w3c/web-platform-tests/dom/events/scrolling/iframe-chains.html [ Skip ] -imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-for-user-scroll.html [ Skip ] -imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss-scroll-within.html [ Skip ] -imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-mouse.html [ Skip ] - -# webkit.org/b/279236 [ Ventura wk2 ] view-gestures/smart-magnify/double-tap-zoom-scroll-above-top.html is a flaky timeout. -view-gestures/smart-magnify/double-tap-zoom-scroll-above-top.html [ Timeout Pass ] - -# webkit.org/b/279274 ([ macOS-Ventura-Release-WK2-Intel-Tests-EWS] [EWS] Multiple tests in media/media-source are constantly failing/timeout) -[ Release x86_64 ] media/media-source/media-managedmse-multipletracks-bufferedchange.html [ Skip ] -[ Release x86_64 ] media/media-source/media-managedmse-video-with-poster.html [ Skip ] -[ Release x86_64 ] media/media-source/media-source-seek-back-after-ended.html [ Skip ] -[ Release x86_64 ] media/media-source/media-source-webm-append-buffer-after-abort.html [ Skip ] -[ Release x86_64 ] media/media-source/media-source-webm-configuration-change.html [ Skip ] -[ Release x86_64 ] media/media-source/media-source-webm-configuration-framerate.html [ Skip ] -[ Release x86_64 ] media/media-source/media-source-webm-configuration-vp9-header-color.html [ Skip ] -[ Release x86_64 ] media/media-source/media-source-webm-init-inside-segment.html [ Skip ] -[ Release x86_64 ] media/media-source/media-source-webm.html [ Skip ] -[ Release x86_64 ] media/mediacapabilities/vp9.html [ Skip ] -[ Release x86_64 ] platform/mac/media/media-source/is-type-supported-vp9-codec-check.html [ Skip ] -[ Release x86_64 ] platform/mac/media/mediacapabilities/vp9-decodingInfo-sw.html [ Skip ] -[ Release x86_64 ] media/media-source/media-managedmse-resume-after-remove.html [ Skip ] - -# webkit.org/b/280098 4 tests in imported/w3c/web-platform-tests/css/ are constant failures in Ventura Intel EWS -[ Release x86_64 ] imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow-border-radius-001.html [ Skip ] -[ Release x86_64 ] imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-background-properties.html [ Skip ] -[ Release x86_64 ] imported/w3c/web-platform-tests/css/css-images/tiled-radial-gradients.html [ Skip ] -[ Release x86_64 ] imported/w3c/web-platform-tests/css/css-view-transitions/massive-element-below-viewport-offscreen-old.html [ Skip ] - -# webkit.org/b/280186 [EWS] imported/w3c/web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas.html is failing on Ventura Intel EWS -[ Release x86_64 ] imported/w3c/web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas.html [ Skip ] - -# webkit.org/b/280187 [EWS] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html is constant failure on Ventura Intel EWS -[ Release x86_64 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html [ Skip ] - -# webkit.org/b/280189 [EWS] imported/w3c/web-platform-tests/webcodecs/videoFrame-construction.any.html is a constant failure on Ventura Intel EWS -[ Release x86_64 ] imported/w3c/web-platform-tests/webcodecs/videoFrame-construction.any.html [ Skip ] diff --git a/LayoutTests/platform/mac-ventura-wk2/compositing/backing/inline-block-no-backing-expected.txt b/LayoutTests/platform/mac-ventura-wk2/compositing/backing/inline-block-no-backing-expected.txt deleted file mode 100644 index 68a3bb350f4c2..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/compositing/backing/inline-block-no-backing-expected.txt +++ /dev/null @@ -1,72 +0,0 @@ -  - - (GraphicsLayer - (anchor 0.00 0.00) - (bounds 800.00 600.00) - (children 1 - (GraphicsLayer - (bounds 800.00 600.00) - (contentsOpaque 1) - (children 4 - (GraphicsLayer - (position 18.00 18.00) - (bounds 160.00 320.00) - (drawsContent 1) - (children 2 - (GraphicsLayer - (position 18.00 10.00) - (bounds 120.00 120.00) - ) - (GraphicsLayer - (position 10.00 154.00) - (bounds 120.00 120.00) - ) - ) - ) - (GraphicsLayer - (position 202.00 18.00) - (bounds 160.00 320.00) - (children 2 - (GraphicsLayer - (position 10.00 10.00) - (bounds 120.00 120.00) - ) - (GraphicsLayer - (position 10.00 154.00) - (bounds 120.00 120.00) - ) - ) - ) - (GraphicsLayer - (position 386.00 18.00) - (bounds 160.00 320.00) - (children 2 - (GraphicsLayer - (position 10.00 10.00) - (bounds 120.00 120.00) - ) - (GraphicsLayer - (position 10.00 154.00) - (bounds 120.00 120.00) - ) - ) - ) - (GraphicsLayer - (position 570.00 18.00) - (bounds 160.00 320.00) - (children 2 - (GraphicsLayer - (position 10.00 10.00) - (bounds 120.00 120.00) - ) - (GraphicsLayer - (position 10.00 154.00) - (bounds 120.00 120.00) - ) - ) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/compositing/backing/whitespace-nodes-no-backing-expected.txt b/LayoutTests/platform/mac-ventura-wk2/compositing/backing/whitespace-nodes-no-backing-expected.txt deleted file mode 100644 index 457eaa70438cf..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/compositing/backing/whitespace-nodes-no-backing-expected.txt +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - -span -inner span - - (GraphicsLayer - (anchor 0.00 0.00) - (bounds 800.00 600.00) - (children 1 - (GraphicsLayer - (bounds 800.00 600.00) - (contentsOpaque 1) - (children 9 - (GraphicsLayer - (position 10.00 8.00) - (bounds 780.00 58.00) - (drawsContent 1) - (children 2 - (GraphicsLayer - (position 2.00 2.00) - (bounds 50.00 50.00) - ) - (GraphicsLayer - (position 60.00 2.00) - (bounds 50.00 50.00) - ) - ) - ) - (GraphicsLayer - (position 10.00 68.00) - (bounds 780.00 58.00) - (children 2 - (GraphicsLayer - (position 2.00 2.00) - (bounds 50.00 50.00) - ) - (GraphicsLayer - (position 60.00 2.00) - (bounds 50.00 50.00) - ) - ) - ) - (GraphicsLayer - (position 10.00 128.00) - (bounds 780.00 58.00) - (children 1 - (GraphicsLayer - (position 2.00 2.00) - (bounds 50.00 50.00) - ) - ) - ) - (GraphicsLayer - (position 10.00 188.00) - (bounds 780.00 58.00) - (children 1 - (GraphicsLayer - (position 2.00 2.00) - (bounds 50.00 50.00) - ) - ) - ) - (GraphicsLayer - (position 10.00 248.00) - (bounds 780.00 78.00) - (drawsContent 1) - (children 1 - (GraphicsLayer - (position 2.00 2.00) - (bounds 50.00 50.00) - ) - ) - ) - (GraphicsLayer - (position 10.00 328.00) - (bounds 780.00 54.00) - (drawsContent 1) - ) - (GraphicsLayer - (position 10.00 384.00) - (bounds 780.00 18.00) - (drawsContent 1) - ) - (GraphicsLayer - (position 10.00 404.00) - (bounds 780.00 18.00) - (drawsContent 1) - ) - (GraphicsLayer - (position 10.00 424.00) - (bounds 780.00 78.00) - (children 2 - (GraphicsLayer - (position 2.00 2.00) - (bounds 50.00 50.00) - ) - (GraphicsLayer - (position 0.00 58.00) - (bounds 20.00 20.00) - (contentsOpaque 1) - ) - ) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/compositing/fixed-image-loading-expected.txt b/LayoutTests/platform/mac-ventura-wk2/compositing/fixed-image-loading-expected.txt deleted file mode 100644 index d3818ceb0671c..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/compositing/fixed-image-loading-expected.txt +++ /dev/null @@ -1,23 +0,0 @@ - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 800.00 600.00) - (children 1 - (GraphicsLayer - (bounds 800.00 600.00) - (contentsOpaque 1) - (children 1 - (GraphicsLayer - (position 8.00 13.00) - (preserves3D 1) - (children 1 - (GraphicsLayer - (bounds 214.00 232.00) - ) - ) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/compositing/hidpi-image-backing-store-expected.txt b/LayoutTests/platform/mac-ventura-wk2/compositing/hidpi-image-backing-store-expected.txt deleted file mode 100644 index 8e2ffc4f185d9..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/compositing/hidpi-image-backing-store-expected.txt +++ /dev/null @@ -1,23 +0,0 @@ -Tests whether a compositing layer containing only an image uses a standard DPI backing store. - - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 800.00 600.00) - (device scale 2.00) - (children 1 - (GraphicsLayer - (bounds 800.00 600.00) - (contentsOpaque 1) - (device scale 2.00) - (children 1 - (GraphicsLayer - (position 8.00 50.00) - (bounds 150.00 150.00) - (device scale 2.00) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/compositing/hidpi-image-backing-store-scaled-expected.txt b/LayoutTests/platform/mac-ventura-wk2/compositing/hidpi-image-backing-store-scaled-expected.txt deleted file mode 100644 index 39ad20dc05599..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/compositing/hidpi-image-backing-store-scaled-expected.txt +++ /dev/null @@ -1,23 +0,0 @@ -Tests whether a compositing layer containing only an image uses a standard DPI backing store. - - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 800.00 600.00) - (device scale 2.00) - (children 1 - (GraphicsLayer - (bounds 800.00 600.00) - (contentsOpaque 1) - (device scale 2.00) - (children 1 - (GraphicsLayer - (position 8.00 50.00) - (bounds 200.00 150.00) - (device scale 2.00) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/compositing/tiling/huge-layer-img-expected.txt b/LayoutTests/platform/mac-ventura-wk2/compositing/tiling/huge-layer-img-expected.txt deleted file mode 100644 index 49f6bb0e58c6b..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/compositing/tiling/huge-layer-img-expected.txt +++ /dev/null @@ -1,18 +0,0 @@ - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 800.00 20053.00) - (children 1 - (GraphicsLayer - (bounds 800.00 20053.00) - (contentsOpaque 1) - (children 1 - (GraphicsLayer - (position 8.00 8.00) - (bounds 500.00 20000.00) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/compositing/visibility/visibility-image-layers-dynamic-expected.txt b/LayoutTests/platform/mac-ventura-wk2/compositing/visibility/visibility-image-layers-dynamic-expected.txt deleted file mode 100644 index 980a7e7c5b9c4..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/compositing/visibility/visibility-image-layers-dynamic-expected.txt +++ /dev/null @@ -1,160 +0,0 @@ - - - -Initial - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 785.00 626.00) - (children 1 - (GraphicsLayer - (bounds 785.00 626.00) - (contentsOpaque 1) - (children 3 - (GraphicsLayer - (position 18.00 10.00) - (anchor 0.50 0.50) - (bounds 749.00 144.00) - (children 1 - (GraphicsLayer - (position 20.00 20.00) - (bounds 100.00 100.00) - (contentsVisible 0) - ) - ) - ) - (GraphicsLayer - (offsetFromRenderer width=-4 height=-4) - (position 14.00 160.00) - (anchor 0.50 0.50) - (bounds 757.00 152.00) - (contentsVisible 0) - (children 1 - (GraphicsLayer - (position 24.00 24.00) - (bounds 100.00 100.00) - (contentsVisible 0) - ) - ) - ) - (GraphicsLayer - (offsetFromRenderer width=-4 height=-4) - (position 14.00 314.00) - (anchor 0.50 0.50) - (bounds 757.00 152.00) - (contentsVisible 0) - (children 1 - (GraphicsLayer - (position 24.00 24.00) - (bounds 100.00 100.00) - ) - ) - ) - ) - ) - ) -) -After step 1 - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 785.00 1411.00) - (children 1 - (GraphicsLayer - (bounds 785.00 1411.00) - (contentsOpaque 1) - (children 3 - (GraphicsLayer - (position 18.00 10.00) - (anchor 0.50 0.50) - (bounds 749.00 144.00) - (children 1 - (GraphicsLayer - (position 20.00 20.00) - (bounds 100.00 100.00) - ) - ) - ) - (GraphicsLayer - (offsetFromRenderer width=-4 height=-4) - (position 14.00 160.00) - (anchor 0.50 0.50) - (bounds 757.00 152.00) - (contentsVisible 0) - (children 1 - (GraphicsLayer - (position 24.00 24.00) - (bounds 100.00 100.00) - (contentsVisible 0) - ) - ) - ) - (GraphicsLayer - (offsetFromRenderer width=-4 height=-4) - (position 14.00 314.00) - (anchor 0.50 0.50) - (bounds 757.00 152.00) - (contentsVisible 0) - (children 1 - (GraphicsLayer - (position 24.00 24.00) - (bounds 100.00 100.00) - ) - ) - ) - ) - ) - ) -) -After step 2 - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 785.00 2180.00) - (children 1 - (GraphicsLayer - (bounds 785.00 2180.00) - (contentsOpaque 1) - (children 3 - (GraphicsLayer - (position 18.00 10.00) - (anchor 0.50 0.50) - (bounds 749.00 144.00) - (children 1 - (GraphicsLayer - (position 20.00 20.00) - (bounds 100.00 100.00) - ) - ) - ) - (GraphicsLayer - (offsetFromRenderer width=-4 height=-4) - (position 14.00 160.00) - (anchor 0.50 0.50) - (bounds 757.00 152.00) - (drawsContent 1) - (children 1 - (GraphicsLayer - (position 24.00 24.00) - (bounds 100.00 100.00) - ) - ) - ) - (GraphicsLayer - (offsetFromRenderer width=-4 height=-4) - (position 14.00 314.00) - (anchor 0.50 0.50) - (bounds 757.00 152.00) - (contentsVisible 0) - (children 1 - (GraphicsLayer - (position 24.00 24.00) - (bounds 100.00 100.00) - ) - ) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/fast/dynamic/layer-hit-test-crash-expected.txt b/LayoutTests/platform/mac-ventura-wk2/fast/dynamic/layer-hit-test-crash-expected.txt deleted file mode 100644 index 984447bcc469e..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/fast/dynamic/layer-hit-test-crash-expected.txt +++ /dev/null @@ -1,18 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DIV} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 758x18 - text run at (0,0) width 758: "Mousing over the yellow square below should not cause an assertion failure or crash. This tests for regressions against" - RenderInline {A} at (0,18) size 32x18 [color=#0000EE] - RenderText {#text} at (0,18) size 32x18 - text run at (0,18) width 32: "6931" - RenderText {#text} at (32,18) size 4x18 - text run at (32,18) width 4: "." -layer at (50,50) size 200x200 - RenderBlock (positioned) zI: 1 {DIV} at (50,50) size 200x200 [bgcolor=#FFFF00] -layer at (70,50) size 100x100 - RenderBlock (positioned) zI: 5 {DIV} at (20,0) size 100x100 [bgcolor=#FF0000] -caret: position 1 of child 2 {#text} of child 1 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura-wk2/fast/forms/datalist/datalist-textinput-appearance-expected.txt b/LayoutTests/platform/mac-ventura-wk2/fast/forms/datalist/datalist-textinput-appearance-expected.txt deleted file mode 100644 index 797dee3a87ffa..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/fast/forms/datalist/datalist-textinput-appearance-expected.txt +++ /dev/null @@ -1,12 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x35 - RenderBlock {HTML} at (0,0) size 800x35 - RenderBody {BODY} at (8,8) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 129x13 - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,11) size 129x13 - RenderBlock {DIV} at (0,0) size 129x13 diff --git a/LayoutTests/platform/mac-ventura-wk2/fast/forms/time/time-input-rendering-basic-expected.txt b/LayoutTests/platform/mac-ventura-wk2/fast/forms/time/time-input-rendering-basic-expected.txt deleted file mode 100644 index c73807f4c7b14..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/fast/forms/time/time-input-rendering-basic-expected.txt +++ /dev/null @@ -1,48 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 (63,2) size 5x18 - text run at (63,2) width 5: " " - RenderText {#text} at (0,0) size 0x0 -layer at (8,8) size 64x23 clip at (10,10) size 60x19 - RenderFlexibleBox {INPUT} at (0,0) size 64x23 [bgcolor=#FFFFFF] [border: (2px inset #808080)] -layer at (11,11) size 58x17 - RenderBlock {DIV} at (3,3) size 58x17 - RenderBlock {DIV} at (1,1) size 56x15 - RenderBlock {DIV} at (0,0) size 16x15 - RenderText {#text} at (1,1) size 14x13 - text run at (1,1) width 14: "09" - RenderInline {DIV} at (16,1) size 4x13 - RenderText {#text} at (16,1) size 4x13 - text run at (16,1) width 4: ":" - RenderBlock {DIV} at (19,0) size 17x15 - RenderText {#text} at (1,1) size 14x13 - text run at (1,1) width 14: "41" - RenderInline {DIV} at (34,1) size 4x13 - RenderText {#text} at (34,1) size 4x13 - text run at (34,1) width 4: " " - RenderBlock {DIV} at (36,0) size 20x15 - RenderText {#text} at (1,1) size 18x13 - text run at (1,1) width 18: "AM" -layer at (76,8) size 63x23 clip at (78,10) size 59x19 - RenderFlexibleBox {INPUT} at (67,0) size 65x23 [bgcolor=#FFFFFF] [border: (2px inset #808080)] -layer at (79,11) size 58x17 backgroundClip at (79,11) size 57x17 clip at (79,11) size 57x17 - RenderBlock {DIV} at (3,3) size 58x17 - RenderBlock {DIV} at (1,1) size 56x15 - RenderBlock {DIV} at (39,0) size 17x15 - RenderText {#text} at (1,1) size 14x13 - text run at (1,1) width 14: "09" - RenderInline {DIV} at (36,1) size 4x13 - RenderText {#text} at (36,1) size 4x13 - text run at (36,1) width 4 RTL: ":" - RenderBlock {DIV} at (20,0) size 17x15 - RenderText {#text} at (1,1) size 14x13 - text run at (1,1) width 14: "41" - RenderInline {DIV} at (18,1) size 4x13 - RenderText {#text} at (18,1) size 4x13 - text run at (18,1) width 4 RTL: " " - RenderBlock {DIV} at (0,0) size 20x15 - RenderText {#text} at (1,1) size 18x13 - text run at (1,1) width 18: "AM" diff --git a/LayoutTests/platform/mac-ventura-wk2/fast/repaint/4776765-expected.txt b/LayoutTests/platform/mac-ventura-wk2/fast/repaint/4776765-expected.txt deleted file mode 100644 index 2f2ee7c853427..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/fast/repaint/4776765-expected.txt +++ /dev/null @@ -1,14 +0,0 @@ - - - -(repaint rects - (rect 1 37 798 32) - (rect 8 44 784 18) - (rect 1 51 798 18) - (rect 1 44 798 7) - (rect 1 19 15 32) - (rect 8 26 1 18) - (rect 1 37 15 32) - (rect 8 44 1 18) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt b/LayoutTests/platform/mac-ventura-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt deleted file mode 100644 index dc2a750611577..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt +++ /dev/null @@ -1,20 +0,0 @@ -Tests that the placeholder text is repainted when the caps lock indicator is hidden. - - -(repaint rects - (rect 25 46 27 27) - (rect 30 51 17 17) - (rect 6 46 46 23) - (rect 11 53 36 13) - (rect 25 46 27 23) - (rect 30 53 17 13) - (rect 6 44 46 27) - (rect 11 51 36 17) - (rect 6 46 46 27) - (rect 11 51 36 17) - (rect 6 48 46 23) - (rect 11 53 36 13) - (rect 6 48 46 23) - (rect 11 53 36 13) -) - diff --git a/LayoutTests/platform/mac-ventura-wk2/fast/scrolling/mac/scrollbars/scrollbars-controller-type-expected.txt b/LayoutTests/platform/mac-ventura-wk2/fast/scrolling/mac/scrollbars/scrollbars-controller-type-expected.txt deleted file mode 100644 index d3a49e04499b6..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/fast/scrolling/mac/scrollbars/scrollbars-controller-type-expected.txt +++ /dev/null @@ -1,10 +0,0 @@ -Ensure scrollbars controller state is correct for scroller type - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - - -PASS window.internals.scrollbarsControllerTypeForNode(svgScroller) is "ScrollbarsControllerMac" -PASS window.internals.scrollbarsControllerTypeForNode(disabledScroller) is "ScrollbarsControllerMac" -PASS window.internals.scrollbarsControllerTypeForNode(scroller) is "ScrollbarsControllerMac" -PASS window.internals.scrollbarsControllerTypeForNode() is "ScrollbarsControllerMac" - diff --git a/LayoutTests/platform/mac-ventura-wk2/inspector/canvas/recording-offscreen-webgl-full-expected.txt b/LayoutTests/platform/mac-ventura-wk2/inspector/canvas/recording-offscreen-webgl-full-expected.txt deleted file mode 100644 index 317045497429d..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/inspector/canvas/recording-offscreen-webgl-full-expected.txt +++ /dev/null @@ -1,998 +0,0 @@ -Test that CanvasManager is able to record actions made to offscreen WebGL canvas contexts. - - -== Running test suite: Canvas.recordingOffscreenWebGL --- Running test case: Canvas.recordingOffscreenWebGL.multipleFrames -initialState: - attributes: - width: 2 - height: 2 - parameters: - 0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false} - content: -frames: - 0: (duration) - 0: activeTexture(1) - swizzleTypes: [Number] - trace: - 0: activeTexture - 1: (anonymous function) - 2: executeFrameFunction - 3: performActions - 4: Global Code - 1: (duration) - 0: attachShader(1, 4) - swizzleTypes: [WebGLProgram, WebGLShader] - trace: - 0: attachShader - 1: (anonymous function) - 2: executeFrameFunction - 2: (duration) - 0: bindAttribLocation(1, 1, "test") - swizzleTypes: [WebGLProgram, Number, String] - trace: - 0: bindAttribLocation - 1: (anonymous function) - 2: executeFrameFunction - 3: (duration) - 0: bindBuffer(1, 1) - swizzleTypes: [Number, WebGLBuffer] - trace: - 0: bindBuffer - 1: (anonymous function) - 2: executeFrameFunction - 4: (duration) - 0: bindFramebuffer(1, 3) - swizzleTypes: [Number, WebGLFramebuffer] - trace: - 0: bindFramebuffer - 1: (anonymous function) - 2: executeFrameFunction - 5: (duration) - 0: bindRenderbuffer(1, 3) - swizzleTypes: [Number, WebGLRenderbuffer] - trace: - 0: bindRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 6: (duration) - 0: bindTexture(1, 2) - swizzleTypes: [Number, WebGLTexture] - trace: - 0: bindTexture - 1: (anonymous function) - 2: executeFrameFunction - 7: (duration) - 0: blendColor(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: blendColor - 1: (anonymous function) - 2: executeFrameFunction - 8: (duration) - 0: blendEquation(1) - swizzleTypes: [Number] - trace: - 0: blendEquation - 1: (anonymous function) - 2: executeFrameFunction - 9: (duration) - 0: blendEquationSeparate(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: blendEquationSeparate - 1: (anonymous function) - 2: executeFrameFunction - 10: (duration) - 0: blendFunc(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: blendFunc - 1: (anonymous function) - 2: executeFrameFunction - 11: (duration) - 0: blendFuncSeparate(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: blendFuncSeparate - 1: (anonymous function) - 2: executeFrameFunction - 12: (duration) - 0: bufferData(1, 0, 2) - swizzleTypes: [Number, TypedArray, Number] - trace: - 0: bufferData - 1: (anonymous function) - 2: executeFrameFunction - 1: bufferData(3, 4, 5) - swizzleTypes: [Number, Number, Number] - trace: - 0: bufferData - 1: (anonymous function) - 2: executeFrameFunction - 13: (duration) - 0: bufferSubData(1, 2, 0) - swizzleTypes: [Number, Number, TypedArray] - trace: - 0: bufferSubData - 1: (anonymous function) - 2: executeFrameFunction - 14: (duration) - 0: checkFramebufferStatus(1) - swizzleTypes: [Number] - trace: - 0: checkFramebufferStatus - 1: (anonymous function) - 2: executeFrameFunction - 15: (duration) - 0: clear(1) - swizzleTypes: [Number] - trace: - 0: clear - 1: (anonymous function) - 2: executeFrameFunction - snapshot: - 16: (duration) - 0: clearColor(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: clearColor - 1: (anonymous function) - 2: executeFrameFunction - 17: (duration) - 0: clearDepth(1) - swizzleTypes: [Number] - trace: - 0: clearDepth - 1: (anonymous function) - 2: executeFrameFunction - 18: (duration) - 0: clearStencil(1) - swizzleTypes: [Number] - trace: - 0: clearStencil - 1: (anonymous function) - 2: executeFrameFunction - 19: (duration) - 0: colorMask(true, false, true, false) - swizzleTypes: [Boolean, Boolean, Boolean, Boolean] - trace: - 0: colorMask - 1: (anonymous function) - 2: executeFrameFunction - 20: (duration) - 0: compileShader(4) - swizzleTypes: [WebGLShader] - trace: - 0: compileShader - 1: (anonymous function) - 2: executeFrameFunction - 21: (duration) - 0: compressedTexImage2D(1, 2, 3, 4, 5, 6, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: compressedTexImage2D - 1: (anonymous function) - 2: executeFrameFunction - 22: (duration) - 0: compressedTexSubImage2D(1, 2, 3, 4, 5, 6, 7, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: compressedTexSubImage2D - 1: (anonymous function) - 2: executeFrameFunction - 23: (duration) - 0: copyTexImage2D(1, 2, 3, 4, 5, 6, 7, 8) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number] - trace: - 0: copyTexImage2D - 1: (anonymous function) - 2: executeFrameFunction - 24: (duration) - 0: copyTexSubImage2D(1, 2, 3, 4, 5, 6, 7, 8) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number] - trace: - 0: copyTexSubImage2D - 1: (anonymous function) - 2: executeFrameFunction - 25: (duration) - 0: createBuffer() - trace: - 0: createBuffer - 1: (anonymous function) - 2: executeFrameFunction - 26: (duration) - 0: createFramebuffer() - trace: - 0: createFramebuffer - 1: (anonymous function) - 2: executeFrameFunction - 27: (duration) - 0: createProgram() - trace: - 0: createProgram - 1: (anonymous function) - 2: executeFrameFunction - 28: (duration) - 0: createRenderbuffer() - trace: - 0: createRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 29: (duration) - 0: createShader(1) - swizzleTypes: [Number] - trace: - 0: createShader - 1: (anonymous function) - 2: executeFrameFunction - 30: (duration) - 0: createTexture() - trace: - 0: createTexture - 1: (anonymous function) - 2: executeFrameFunction - 31: (duration) - 0: cullFace(1) - swizzleTypes: [Number] - trace: - 0: cullFace - 1: (anonymous function) - 2: executeFrameFunction - 32: (duration) - 0: deleteBuffer(1) - swizzleTypes: [WebGLBuffer] - trace: - 0: deleteBuffer - 1: (anonymous function) - 2: executeFrameFunction - 33: (duration) - 0: deleteFramebuffer(3) - swizzleTypes: [WebGLFramebuffer] - trace: - 0: deleteFramebuffer - 1: (anonymous function) - 2: executeFrameFunction - 34: (duration) - 0: deleteProgram(1) - swizzleTypes: [WebGLProgram] - trace: - 0: deleteProgram - 1: (anonymous function) - 2: executeFrameFunction - 35: (duration) - 0: deleteRenderbuffer(3) - swizzleTypes: [WebGLRenderbuffer] - trace: - 0: deleteRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 36: (duration) - 0: deleteShader(4) - swizzleTypes: [WebGLShader] - trace: - 0: deleteShader - 1: (anonymous function) - 2: executeFrameFunction - 37: (duration) - 0: deleteTexture(2) - swizzleTypes: [WebGLTexture] - trace: - 0: deleteTexture - 1: (anonymous function) - 2: executeFrameFunction - 38: (duration) - 0: depthFunc(1) - swizzleTypes: [Number] - trace: - 0: depthFunc - 1: (anonymous function) - 2: executeFrameFunction - 39: (duration) - 0: depthMask(true) - swizzleTypes: [Boolean] - trace: - 0: depthMask - 1: (anonymous function) - 2: executeFrameFunction - 40: (duration) - 0: depthRange(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: depthRange - 1: (anonymous function) - 2: executeFrameFunction - 41: (duration) - 0: detachShader(0, 0) - swizzleTypes: [WebGLProgram, WebGLShader] - trace: - 0: detachShader - 1: (anonymous function) - 2: executeFrameFunction - 42: (duration) - 0: disable(1) - swizzleTypes: [Number] - trace: - 0: disable - 1: (anonymous function) - 2: executeFrameFunction - 43: (duration) - 0: disableVertexAttribArray(1) - swizzleTypes: [Number] - trace: - 0: disableVertexAttribArray - 1: (anonymous function) - 2: executeFrameFunction - 44: (duration) - 0: drawArrays(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: drawArrays - 1: (anonymous function) - 2: executeFrameFunction - snapshot: - 45: (duration) - 0: drawElements(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: drawElements - 1: (anonymous function) - 2: executeFrameFunction - snapshot: - 46: (duration) - 0: enable(1) - swizzleTypes: [Number] - trace: - 0: enable - 1: (anonymous function) - 2: executeFrameFunction - 47: (duration) - 0: enableVertexAttribArray(1) - swizzleTypes: [Number] - trace: - 0: enableVertexAttribArray - 1: (anonymous function) - 2: executeFrameFunction - 48: (duration) - 0: finish() - trace: - 0: finish - 1: (anonymous function) - 2: executeFrameFunction - 49: (duration) - 0: flush() - trace: - 0: flush - 1: (anonymous function) - 2: executeFrameFunction - 50: (duration) - 0: framebufferRenderbuffer(1, 2, 3, 0) - swizzleTypes: [Number, Number, Number, WebGLRenderbuffer] - trace: - 0: framebufferRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 51: (duration) - 0: framebufferTexture2D(1, 2, 3, 0, 4) - swizzleTypes: [Number, Number, Number, WebGLTexture, Number] - trace: - 0: framebufferTexture2D - 1: (anonymous function) - 2: executeFrameFunction - 52: (duration) - 0: frontFace(1) - swizzleTypes: [Number] - trace: - 0: frontFace - 1: (anonymous function) - 2: executeFrameFunction - 53: (duration) - 0: generateMipmap(1) - swizzleTypes: [Number] - trace: - 0: generateMipmap - 1: (anonymous function) - 2: executeFrameFunction - 54: (duration) - 0: getActiveAttrib(0, 1) - swizzleTypes: [WebGLProgram, Number] - trace: - 0: getActiveAttrib - 1: (anonymous function) - 2: executeFrameFunction - 55: (duration) - 0: getActiveUniform(0, 1) - swizzleTypes: [WebGLProgram, Number] - trace: - 0: getActiveUniform - 1: (anonymous function) - 2: executeFrameFunction - 56: (duration) - 0: getAttachedShaders(0) - swizzleTypes: [WebGLProgram] - trace: - 0: getAttachedShaders - 1: (anonymous function) - 2: executeFrameFunction - 57: (duration) - 0: getAttribLocation(0, "test") - swizzleTypes: [WebGLProgram, String] - trace: - 0: getAttribLocation - 1: (anonymous function) - 2: executeFrameFunction - 58: (duration) - 0: getBufferParameter(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getBufferParameter - 1: (anonymous function) - 2: executeFrameFunction - 59: (duration) - 0: getContextAttributes() - trace: - 0: getContextAttributes - 1: (anonymous function) - 2: executeFrameFunction - 60: (duration) - 0: getError() - trace: - 0: getError - 1: (anonymous function) - 2: executeFrameFunction - 61: (duration) - 0: getExtension("test") - swizzleTypes: [String] - trace: - 0: getExtension - 1: (anonymous function) - 2: executeFrameFunction - 62: (duration) - 0: getFramebufferAttachmentParameter(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: getFramebufferAttachmentParameter - 1: (anonymous function) - 2: executeFrameFunction - 63: (duration) - 0: getParameter(1) - swizzleTypes: [Number] - trace: - 0: getParameter - 1: (anonymous function) - 2: executeFrameFunction - 64: (duration) - 0: getProgramInfoLog(0) - swizzleTypes: [WebGLProgram] - trace: - 0: getProgramInfoLog - 1: (anonymous function) - 2: executeFrameFunction - 65: (duration) - 0: getProgramParameter(0, 1) - swizzleTypes: [WebGLProgram, Number] - trace: - 0: getProgramParameter - 1: (anonymous function) - 2: executeFrameFunction - 66: (duration) - 0: getRenderbufferParameter(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getRenderbufferParameter - 1: (anonymous function) - 2: executeFrameFunction - 67: (duration) - 0: getShaderInfoLog(0) - swizzleTypes: [WebGLShader] - trace: - 0: getShaderInfoLog - 1: (anonymous function) - 2: executeFrameFunction - 68: (duration) - 0: getShaderParameter(0, 1) - swizzleTypes: [WebGLShader, Number] - trace: - 0: getShaderParameter - 1: (anonymous function) - 2: executeFrameFunction - 69: (duration) - 0: getShaderPrecisionFormat(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getShaderPrecisionFormat - 1: (anonymous function) - 2: executeFrameFunction - 70: (duration) - 0: getShaderSource(0) - swizzleTypes: [WebGLShader] - trace: - 0: getShaderSource - 1: (anonymous function) - 2: executeFrameFunction - 71: (duration) - 0: getSupportedExtensions() - trace: - 0: getSupportedExtensions - 1: (anonymous function) - 2: executeFrameFunction - 72: (duration) - 0: getTexParameter(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getTexParameter - 1: (anonymous function) - 2: executeFrameFunction - 73: (duration) - 0: getUniform(0, 0) - swizzleTypes: [WebGLProgram, WebGLUniformLocation] - trace: - 0: getUniform - 1: (anonymous function) - 2: executeFrameFunction - 74: (duration) - 0: getUniformLocation(0, "test") - swizzleTypes: [WebGLProgram, String] - trace: - 0: getUniformLocation - 1: (anonymous function) - 2: executeFrameFunction - 75: (duration) - 0: getVertexAttrib(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getVertexAttrib - 1: (anonymous function) - 2: executeFrameFunction - 76: (duration) - 0: getVertexAttribOffset(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getVertexAttribOffset - 1: (anonymous function) - 2: executeFrameFunction - 77: (duration) - 0: hint(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: hint - 1: (anonymous function) - 2: executeFrameFunction - 78: (duration) - 0: isBuffer(0) - swizzleTypes: [WebGLBuffer] - trace: - 0: isBuffer - 1: (anonymous function) - 2: executeFrameFunction - 79: (duration) - 0: isContextLost() - trace: - 0: isContextLost - 1: (anonymous function) - 2: executeFrameFunction - 80: (duration) - 0: isEnabled(1) - swizzleTypes: [Number] - trace: - 0: isEnabled - 1: (anonymous function) - 2: executeFrameFunction - 81: (duration) - 0: isFramebuffer(0) - swizzleTypes: [WebGLFramebuffer] - trace: - 0: isFramebuffer - 1: (anonymous function) - 2: executeFrameFunction - 82: (duration) - 0: isProgram(0) - swizzleTypes: [WebGLProgram] - trace: - 0: isProgram - 1: (anonymous function) - 2: executeFrameFunction - 83: (duration) - 0: isRenderbuffer(0) - swizzleTypes: [WebGLRenderbuffer] - trace: - 0: isRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 84: (duration) - 0: isShader(0) - swizzleTypes: [WebGLShader] - trace: - 0: isShader - 1: (anonymous function) - 2: executeFrameFunction - 85: (duration) - 0: isTexture(0) - swizzleTypes: [WebGLTexture] - trace: - 0: isTexture - 1: (anonymous function) - 2: executeFrameFunction - 86: (duration) - 0: lineWidth(1) - swizzleTypes: [Number] - trace: - 0: lineWidth - 1: (anonymous function) - 2: executeFrameFunction - 87: (duration) - 0: linkProgram(0) - swizzleTypes: [WebGLProgram] - trace: - 0: linkProgram - 1: (anonymous function) - 2: executeFrameFunction - 88: (duration) - 0: pixelStorei(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: pixelStorei - 1: (anonymous function) - 2: executeFrameFunction - 89: (duration) - 0: polygonOffset(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: polygonOffset - 1: (anonymous function) - 2: executeFrameFunction - 90: (duration) - 0: readPixels(1, 2, 3, 4, 5, 6, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: readPixels - 1: (anonymous function) - 2: executeFrameFunction - 91: (duration) - 0: renderbufferStorage(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: renderbufferStorage - 1: (anonymous function) - 2: executeFrameFunction - 92: (duration) - 0: sampleCoverage(1, true) - swizzleTypes: [Number, Boolean] - trace: - 0: sampleCoverage - 1: (anonymous function) - 2: executeFrameFunction - 93: (duration) - 0: scissor(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: scissor - 1: (anonymous function) - 2: executeFrameFunction - 94: (duration) - 0: shaderSource(0, "test") - swizzleTypes: [WebGLShader, String] - trace: - 0: shaderSource - 1: (anonymous function) - 2: executeFrameFunction - 95: (duration) - 0: stencilFunc(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: stencilFunc - 1: (anonymous function) - 2: executeFrameFunction - 96: (duration) - 0: stencilFuncSeparate(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: stencilFuncSeparate - 1: (anonymous function) - 2: executeFrameFunction - 97: (duration) - 0: stencilMask(1) - swizzleTypes: [Number] - trace: - 0: stencilMask - 1: (anonymous function) - 2: executeFrameFunction - 98: (duration) - 0: stencilMaskSeparate(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: stencilMaskSeparate - 1: (anonymous function) - 2: executeFrameFunction - 99: (duration) - 0: stencilOp(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: stencilOp - 1: (anonymous function) - 2: executeFrameFunction - 100: (duration) - 0: stencilOpSeparate(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: stencilOpSeparate - 1: (anonymous function) - 2: executeFrameFunction - 101: (duration) - 0: texImage2D(1, 2, 3, 4, 5, [object HTMLImageElement]) - swizzleTypes: [Number, Number, Number, Number, Number, Image] - trace: - 0: texImage2D - 1: (anonymous function) - 2: executeFrameFunction - 1: texImage2D(6, 7, 8, 9, 10, 11, 12, 13, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: texImage2D - 1: (anonymous function) - 2: executeFrameFunction - 102: (duration) - 0: texParameterf(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: texParameterf - 1: (anonymous function) - 2: executeFrameFunction - 103: (duration) - 0: texParameteri(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: texParameteri - 1: (anonymous function) - 2: executeFrameFunction - 104: (duration) - 0: texSubImage2D(1, 2, 3, 4, 5, 6, [object HTMLImageElement]) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Image] - trace: - 0: texSubImage2D - 1: (anonymous function) - 2: executeFrameFunction - 1: texSubImage2D(7, 8, 9, 10, 11, 12, 13, 14, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: texSubImage2D - 1: (anonymous function) - 2: executeFrameFunction - 105: (duration) - 0: uniform1f(0, 1) - swizzleTypes: [WebGLUniformLocation, Number] - trace: - 0: uniform1f - 1: (anonymous function) - 2: executeFrameFunction - 106: (duration) - 0: uniform1fv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform1fv - 1: (anonymous function) - 2: executeFrameFunction - 107: (duration) - 0: uniform1i(0, 1) - swizzleTypes: [WebGLUniformLocation, Number] - trace: - 0: uniform1i - 1: (anonymous function) - 2: executeFrameFunction - 108: (duration) - 0: uniform1iv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform1iv - 1: (anonymous function) - 2: executeFrameFunction - 109: (duration) - 0: uniform2f(0, 1, 2) - swizzleTypes: [WebGLUniformLocation, Number, Number] - trace: - 0: uniform2f - 1: (anonymous function) - 2: executeFrameFunction - 110: (duration) - 0: uniform2fv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform2fv - 1: (anonymous function) - 2: executeFrameFunction - 111: (duration) - 0: uniform2i(0, 1, 2) - swizzleTypes: [WebGLUniformLocation, Number, Number] - trace: - 0: uniform2i - 1: (anonymous function) - 2: executeFrameFunction - 112: (duration) - 0: uniform2iv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform2iv - 1: (anonymous function) - 2: executeFrameFunction - 113: (duration) - 0: uniform3f(0, 1, 2, 3) - swizzleTypes: [WebGLUniformLocation, Number, Number, Number] - trace: - 0: uniform3f - 1: (anonymous function) - 2: executeFrameFunction - 114: (duration) - 0: uniform3fv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform3fv - 1: (anonymous function) - 2: executeFrameFunction - 115: (duration) - 0: uniform3i(0, 1, 2, 3) - swizzleTypes: [WebGLUniformLocation, Number, Number, Number] - trace: - 0: uniform3i - 1: (anonymous function) - 2: executeFrameFunction - 116: (duration) - 0: uniform3iv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform3iv - 1: (anonymous function) - 2: executeFrameFunction - 117: (duration) - 0: uniform4f(0, 1, 2, 3, 4) - swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number] - trace: - 0: uniform4f - 1: (anonymous function) - 2: executeFrameFunction - 118: (duration) - 0: uniform4fv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform4fv - 1: (anonymous function) - 2: executeFrameFunction - 119: (duration) - 0: uniform4i(0, 1, 2, 3, 4) - swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number] - trace: - 0: uniform4i - 1: (anonymous function) - 2: executeFrameFunction - 120: (duration) - 0: uniform4iv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform4iv - 1: (anonymous function) - 2: executeFrameFunction - 121: (duration) - 0: uniformMatrix2fv(0, true, 0) - swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray] - trace: - 0: uniformMatrix2fv - 1: (anonymous function) - 2: executeFrameFunction - 122: (duration) - 0: uniformMatrix3fv(0, true, 0) - swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray] - trace: - 0: uniformMatrix3fv - 1: (anonymous function) - 2: executeFrameFunction - 123: (duration) - 0: uniformMatrix4fv(0, true, 0) - swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray] - trace: - 0: uniformMatrix4fv - 1: (anonymous function) - 2: executeFrameFunction - 124: (duration) - 0: useProgram(0) - swizzleTypes: [WebGLProgram] - trace: - 0: useProgram - 1: (anonymous function) - 2: executeFrameFunction - 125: (duration) - 0: validateProgram(0) - swizzleTypes: [WebGLProgram] - trace: - 0: validateProgram - 1: (anonymous function) - 2: executeFrameFunction - 126: (duration) - 0: vertexAttrib1f(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: vertexAttrib1f - 1: (anonymous function) - 2: executeFrameFunction - 127: (duration) - 0: vertexAttrib1fv(1, 0) - swizzleTypes: [Number, TypedArray] - trace: - 0: vertexAttrib1fv - 1: (anonymous function) - 2: executeFrameFunction - 128: (duration) - 0: vertexAttrib2f(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: vertexAttrib2f - 1: (anonymous function) - 2: executeFrameFunction - 129: (duration) - 0: vertexAttrib2fv(1, 0) - swizzleTypes: [Number, TypedArray] - trace: - 0: vertexAttrib2fv - 1: (anonymous function) - 2: executeFrameFunction - 130: (duration) - 0: vertexAttrib3f(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: vertexAttrib3f - 1: (anonymous function) - 2: executeFrameFunction - 131: (duration) - 0: vertexAttrib3fv(1, 0) - swizzleTypes: [Number, TypedArray] - trace: - 0: vertexAttrib3fv - 1: (anonymous function) - 2: executeFrameFunction - 132: (duration) - 0: vertexAttrib4f(1, 2, 3, 4, 5) - swizzleTypes: [Number, Number, Number, Number, Number] - trace: - 0: vertexAttrib4f - 1: (anonymous function) - 2: executeFrameFunction - 133: (duration) - 0: vertexAttrib4fv(1, 0) - swizzleTypes: [Number, TypedArray] - trace: - 0: vertexAttrib4fv - 1: (anonymous function) - 2: executeFrameFunction - 134: (duration) - 0: vertexAttribPointer(1, 2, 3, true, 5, 6) - swizzleTypes: [Number, Number, Number, Boolean, Number, Number] - trace: - 0: vertexAttribPointer - 1: (anonymous function) - 2: executeFrameFunction - 135: (duration) - 0: viewport(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: viewport - 1: (anonymous function) - 2: executeFrameFunction - 136: (duration) - 0: width - trace: - 0: (anonymous function) - 1: executeFrameFunction - 1: width = 2 - swizzleTypes: [Number] - trace: - 0: (anonymous function) - 1: executeFrameFunction - 137: (duration) - 0: height - trace: - 0: (anonymous function) - 1: executeFrameFunction - 1: height = 2 - swizzleTypes: [Number] - trace: - 0: (anonymous function) - 1: executeFrameFunction - diff --git a/LayoutTests/platform/mac-ventura-wk2/inspector/canvas/recording-webgl-full-expected.txt b/LayoutTests/platform/mac-ventura-wk2/inspector/canvas/recording-webgl-full-expected.txt deleted file mode 100644 index a2f63fddb39dd..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/inspector/canvas/recording-webgl-full-expected.txt +++ /dev/null @@ -1,998 +0,0 @@ -Test that CanvasManager is able to record actions made to WebGL canvas contexts. - - -== Running test suite: Canvas.recordingWebGL --- Running test case: Canvas.recordingWebGL.multipleFrames -initialState: - attributes: - width: 2 - height: 2 - parameters: - 0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false} - content: -frames: - 0: (duration) - 0: activeTexture(1) - swizzleTypes: [Number] - trace: - 0: activeTexture - 1: (anonymous function) - 2: executeFrameFunction - 3: performActions - 4: Global Code - 1: (duration) - 0: attachShader(1, 4) - swizzleTypes: [WebGLProgram, WebGLShader] - trace: - 0: attachShader - 1: (anonymous function) - 2: executeFrameFunction - 2: (duration) - 0: bindAttribLocation(1, 1, "test") - swizzleTypes: [WebGLProgram, Number, String] - trace: - 0: bindAttribLocation - 1: (anonymous function) - 2: executeFrameFunction - 3: (duration) - 0: bindBuffer(1, 1) - swizzleTypes: [Number, WebGLBuffer] - trace: - 0: bindBuffer - 1: (anonymous function) - 2: executeFrameFunction - 4: (duration) - 0: bindFramebuffer(1, 3) - swizzleTypes: [Number, WebGLFramebuffer] - trace: - 0: bindFramebuffer - 1: (anonymous function) - 2: executeFrameFunction - 5: (duration) - 0: bindRenderbuffer(1, 3) - swizzleTypes: [Number, WebGLRenderbuffer] - trace: - 0: bindRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 6: (duration) - 0: bindTexture(1, 2) - swizzleTypes: [Number, WebGLTexture] - trace: - 0: bindTexture - 1: (anonymous function) - 2: executeFrameFunction - 7: (duration) - 0: blendColor(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: blendColor - 1: (anonymous function) - 2: executeFrameFunction - 8: (duration) - 0: blendEquation(1) - swizzleTypes: [Number] - trace: - 0: blendEquation - 1: (anonymous function) - 2: executeFrameFunction - 9: (duration) - 0: blendEquationSeparate(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: blendEquationSeparate - 1: (anonymous function) - 2: executeFrameFunction - 10: (duration) - 0: blendFunc(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: blendFunc - 1: (anonymous function) - 2: executeFrameFunction - 11: (duration) - 0: blendFuncSeparate(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: blendFuncSeparate - 1: (anonymous function) - 2: executeFrameFunction - 12: (duration) - 0: bufferData(1, 0, 2) - swizzleTypes: [Number, TypedArray, Number] - trace: - 0: bufferData - 1: (anonymous function) - 2: executeFrameFunction - 1: bufferData(3, 4, 5) - swizzleTypes: [Number, Number, Number] - trace: - 0: bufferData - 1: (anonymous function) - 2: executeFrameFunction - 13: (duration) - 0: bufferSubData(1, 2, 0) - swizzleTypes: [Number, Number, TypedArray] - trace: - 0: bufferSubData - 1: (anonymous function) - 2: executeFrameFunction - 14: (duration) - 0: checkFramebufferStatus(1) - swizzleTypes: [Number] - trace: - 0: checkFramebufferStatus - 1: (anonymous function) - 2: executeFrameFunction - 15: (duration) - 0: clear(1) - swizzleTypes: [Number] - trace: - 0: clear - 1: (anonymous function) - 2: executeFrameFunction - snapshot: - 16: (duration) - 0: clearColor(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: clearColor - 1: (anonymous function) - 2: executeFrameFunction - 17: (duration) - 0: clearDepth(1) - swizzleTypes: [Number] - trace: - 0: clearDepth - 1: (anonymous function) - 2: executeFrameFunction - 18: (duration) - 0: clearStencil(1) - swizzleTypes: [Number] - trace: - 0: clearStencil - 1: (anonymous function) - 2: executeFrameFunction - 19: (duration) - 0: colorMask(true, false, true, false) - swizzleTypes: [Boolean, Boolean, Boolean, Boolean] - trace: - 0: colorMask - 1: (anonymous function) - 2: executeFrameFunction - 20: (duration) - 0: compileShader(4) - swizzleTypes: [WebGLShader] - trace: - 0: compileShader - 1: (anonymous function) - 2: executeFrameFunction - 21: (duration) - 0: compressedTexImage2D(1, 2, 3, 4, 5, 6, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: compressedTexImage2D - 1: (anonymous function) - 2: executeFrameFunction - 22: (duration) - 0: compressedTexSubImage2D(1, 2, 3, 4, 5, 6, 7, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: compressedTexSubImage2D - 1: (anonymous function) - 2: executeFrameFunction - 23: (duration) - 0: copyTexImage2D(1, 2, 3, 4, 5, 6, 7, 8) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number] - trace: - 0: copyTexImage2D - 1: (anonymous function) - 2: executeFrameFunction - 24: (duration) - 0: copyTexSubImage2D(1, 2, 3, 4, 5, 6, 7, 8) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number] - trace: - 0: copyTexSubImage2D - 1: (anonymous function) - 2: executeFrameFunction - 25: (duration) - 0: createBuffer() - trace: - 0: createBuffer - 1: (anonymous function) - 2: executeFrameFunction - 26: (duration) - 0: createFramebuffer() - trace: - 0: createFramebuffer - 1: (anonymous function) - 2: executeFrameFunction - 27: (duration) - 0: createProgram() - trace: - 0: createProgram - 1: (anonymous function) - 2: executeFrameFunction - 28: (duration) - 0: createRenderbuffer() - trace: - 0: createRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 29: (duration) - 0: createShader(1) - swizzleTypes: [Number] - trace: - 0: createShader - 1: (anonymous function) - 2: executeFrameFunction - 30: (duration) - 0: createTexture() - trace: - 0: createTexture - 1: (anonymous function) - 2: executeFrameFunction - 31: (duration) - 0: cullFace(1) - swizzleTypes: [Number] - trace: - 0: cullFace - 1: (anonymous function) - 2: executeFrameFunction - 32: (duration) - 0: deleteBuffer(1) - swizzleTypes: [WebGLBuffer] - trace: - 0: deleteBuffer - 1: (anonymous function) - 2: executeFrameFunction - 33: (duration) - 0: deleteFramebuffer(3) - swizzleTypes: [WebGLFramebuffer] - trace: - 0: deleteFramebuffer - 1: (anonymous function) - 2: executeFrameFunction - 34: (duration) - 0: deleteProgram(1) - swizzleTypes: [WebGLProgram] - trace: - 0: deleteProgram - 1: (anonymous function) - 2: executeFrameFunction - 35: (duration) - 0: deleteRenderbuffer(3) - swizzleTypes: [WebGLRenderbuffer] - trace: - 0: deleteRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 36: (duration) - 0: deleteShader(4) - swizzleTypes: [WebGLShader] - trace: - 0: deleteShader - 1: (anonymous function) - 2: executeFrameFunction - 37: (duration) - 0: deleteTexture(2) - swizzleTypes: [WebGLTexture] - trace: - 0: deleteTexture - 1: (anonymous function) - 2: executeFrameFunction - 38: (duration) - 0: depthFunc(1) - swizzleTypes: [Number] - trace: - 0: depthFunc - 1: (anonymous function) - 2: executeFrameFunction - 39: (duration) - 0: depthMask(true) - swizzleTypes: [Boolean] - trace: - 0: depthMask - 1: (anonymous function) - 2: executeFrameFunction - 40: (duration) - 0: depthRange(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: depthRange - 1: (anonymous function) - 2: executeFrameFunction - 41: (duration) - 0: detachShader(0, 0) - swizzleTypes: [WebGLProgram, WebGLShader] - trace: - 0: detachShader - 1: (anonymous function) - 2: executeFrameFunction - 42: (duration) - 0: disable(1) - swizzleTypes: [Number] - trace: - 0: disable - 1: (anonymous function) - 2: executeFrameFunction - 43: (duration) - 0: disableVertexAttribArray(1) - swizzleTypes: [Number] - trace: - 0: disableVertexAttribArray - 1: (anonymous function) - 2: executeFrameFunction - 44: (duration) - 0: drawArrays(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: drawArrays - 1: (anonymous function) - 2: executeFrameFunction - snapshot: - 45: (duration) - 0: drawElements(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: drawElements - 1: (anonymous function) - 2: executeFrameFunction - snapshot: - 46: (duration) - 0: enable(1) - swizzleTypes: [Number] - trace: - 0: enable - 1: (anonymous function) - 2: executeFrameFunction - 47: (duration) - 0: enableVertexAttribArray(1) - swizzleTypes: [Number] - trace: - 0: enableVertexAttribArray - 1: (anonymous function) - 2: executeFrameFunction - 48: (duration) - 0: finish() - trace: - 0: finish - 1: (anonymous function) - 2: executeFrameFunction - 49: (duration) - 0: flush() - trace: - 0: flush - 1: (anonymous function) - 2: executeFrameFunction - 50: (duration) - 0: framebufferRenderbuffer(1, 2, 3, 0) - swizzleTypes: [Number, Number, Number, WebGLRenderbuffer] - trace: - 0: framebufferRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 51: (duration) - 0: framebufferTexture2D(1, 2, 3, 0, 4) - swizzleTypes: [Number, Number, Number, WebGLTexture, Number] - trace: - 0: framebufferTexture2D - 1: (anonymous function) - 2: executeFrameFunction - 52: (duration) - 0: frontFace(1) - swizzleTypes: [Number] - trace: - 0: frontFace - 1: (anonymous function) - 2: executeFrameFunction - 53: (duration) - 0: generateMipmap(1) - swizzleTypes: [Number] - trace: - 0: generateMipmap - 1: (anonymous function) - 2: executeFrameFunction - 54: (duration) - 0: getActiveAttrib(0, 1) - swizzleTypes: [WebGLProgram, Number] - trace: - 0: getActiveAttrib - 1: (anonymous function) - 2: executeFrameFunction - 55: (duration) - 0: getActiveUniform(0, 1) - swizzleTypes: [WebGLProgram, Number] - trace: - 0: getActiveUniform - 1: (anonymous function) - 2: executeFrameFunction - 56: (duration) - 0: getAttachedShaders(0) - swizzleTypes: [WebGLProgram] - trace: - 0: getAttachedShaders - 1: (anonymous function) - 2: executeFrameFunction - 57: (duration) - 0: getAttribLocation(0, "test") - swizzleTypes: [WebGLProgram, String] - trace: - 0: getAttribLocation - 1: (anonymous function) - 2: executeFrameFunction - 58: (duration) - 0: getBufferParameter(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getBufferParameter - 1: (anonymous function) - 2: executeFrameFunction - 59: (duration) - 0: getContextAttributes() - trace: - 0: getContextAttributes - 1: (anonymous function) - 2: executeFrameFunction - 60: (duration) - 0: getError() - trace: - 0: getError - 1: (anonymous function) - 2: executeFrameFunction - 61: (duration) - 0: getExtension("test") - swizzleTypes: [String] - trace: - 0: getExtension - 1: (anonymous function) - 2: executeFrameFunction - 62: (duration) - 0: getFramebufferAttachmentParameter(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: getFramebufferAttachmentParameter - 1: (anonymous function) - 2: executeFrameFunction - 63: (duration) - 0: getParameter(1) - swizzleTypes: [Number] - trace: - 0: getParameter - 1: (anonymous function) - 2: executeFrameFunction - 64: (duration) - 0: getProgramInfoLog(0) - swizzleTypes: [WebGLProgram] - trace: - 0: getProgramInfoLog - 1: (anonymous function) - 2: executeFrameFunction - 65: (duration) - 0: getProgramParameter(0, 1) - swizzleTypes: [WebGLProgram, Number] - trace: - 0: getProgramParameter - 1: (anonymous function) - 2: executeFrameFunction - 66: (duration) - 0: getRenderbufferParameter(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getRenderbufferParameter - 1: (anonymous function) - 2: executeFrameFunction - 67: (duration) - 0: getShaderInfoLog(0) - swizzleTypes: [WebGLShader] - trace: - 0: getShaderInfoLog - 1: (anonymous function) - 2: executeFrameFunction - 68: (duration) - 0: getShaderParameter(0, 1) - swizzleTypes: [WebGLShader, Number] - trace: - 0: getShaderParameter - 1: (anonymous function) - 2: executeFrameFunction - 69: (duration) - 0: getShaderPrecisionFormat(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getShaderPrecisionFormat - 1: (anonymous function) - 2: executeFrameFunction - 70: (duration) - 0: getShaderSource(0) - swizzleTypes: [WebGLShader] - trace: - 0: getShaderSource - 1: (anonymous function) - 2: executeFrameFunction - 71: (duration) - 0: getSupportedExtensions() - trace: - 0: getSupportedExtensions - 1: (anonymous function) - 2: executeFrameFunction - 72: (duration) - 0: getTexParameter(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getTexParameter - 1: (anonymous function) - 2: executeFrameFunction - 73: (duration) - 0: getUniform(0, 0) - swizzleTypes: [WebGLProgram, WebGLUniformLocation] - trace: - 0: getUniform - 1: (anonymous function) - 2: executeFrameFunction - 74: (duration) - 0: getUniformLocation(0, "test") - swizzleTypes: [WebGLProgram, String] - trace: - 0: getUniformLocation - 1: (anonymous function) - 2: executeFrameFunction - 75: (duration) - 0: getVertexAttrib(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getVertexAttrib - 1: (anonymous function) - 2: executeFrameFunction - 76: (duration) - 0: getVertexAttribOffset(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: getVertexAttribOffset - 1: (anonymous function) - 2: executeFrameFunction - 77: (duration) - 0: hint(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: hint - 1: (anonymous function) - 2: executeFrameFunction - 78: (duration) - 0: isBuffer(0) - swizzleTypes: [WebGLBuffer] - trace: - 0: isBuffer - 1: (anonymous function) - 2: executeFrameFunction - 79: (duration) - 0: isContextLost() - trace: - 0: isContextLost - 1: (anonymous function) - 2: executeFrameFunction - 80: (duration) - 0: isEnabled(1) - swizzleTypes: [Number] - trace: - 0: isEnabled - 1: (anonymous function) - 2: executeFrameFunction - 81: (duration) - 0: isFramebuffer(0) - swizzleTypes: [WebGLFramebuffer] - trace: - 0: isFramebuffer - 1: (anonymous function) - 2: executeFrameFunction - 82: (duration) - 0: isProgram(0) - swizzleTypes: [WebGLProgram] - trace: - 0: isProgram - 1: (anonymous function) - 2: executeFrameFunction - 83: (duration) - 0: isRenderbuffer(0) - swizzleTypes: [WebGLRenderbuffer] - trace: - 0: isRenderbuffer - 1: (anonymous function) - 2: executeFrameFunction - 84: (duration) - 0: isShader(0) - swizzleTypes: [WebGLShader] - trace: - 0: isShader - 1: (anonymous function) - 2: executeFrameFunction - 85: (duration) - 0: isTexture(0) - swizzleTypes: [WebGLTexture] - trace: - 0: isTexture - 1: (anonymous function) - 2: executeFrameFunction - 86: (duration) - 0: lineWidth(1) - swizzleTypes: [Number] - trace: - 0: lineWidth - 1: (anonymous function) - 2: executeFrameFunction - 87: (duration) - 0: linkProgram(0) - swizzleTypes: [WebGLProgram] - trace: - 0: linkProgram - 1: (anonymous function) - 2: executeFrameFunction - 88: (duration) - 0: pixelStorei(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: pixelStorei - 1: (anonymous function) - 2: executeFrameFunction - 89: (duration) - 0: polygonOffset(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: polygonOffset - 1: (anonymous function) - 2: executeFrameFunction - 90: (duration) - 0: readPixels(1, 2, 3, 4, 5, 6, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: readPixels - 1: (anonymous function) - 2: executeFrameFunction - 91: (duration) - 0: renderbufferStorage(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: renderbufferStorage - 1: (anonymous function) - 2: executeFrameFunction - 92: (duration) - 0: sampleCoverage(1, true) - swizzleTypes: [Number, Boolean] - trace: - 0: sampleCoverage - 1: (anonymous function) - 2: executeFrameFunction - 93: (duration) - 0: scissor(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: scissor - 1: (anonymous function) - 2: executeFrameFunction - 94: (duration) - 0: shaderSource(0, "test") - swizzleTypes: [WebGLShader, String] - trace: - 0: shaderSource - 1: (anonymous function) - 2: executeFrameFunction - 95: (duration) - 0: stencilFunc(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: stencilFunc - 1: (anonymous function) - 2: executeFrameFunction - 96: (duration) - 0: stencilFuncSeparate(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: stencilFuncSeparate - 1: (anonymous function) - 2: executeFrameFunction - 97: (duration) - 0: stencilMask(1) - swizzleTypes: [Number] - trace: - 0: stencilMask - 1: (anonymous function) - 2: executeFrameFunction - 98: (duration) - 0: stencilMaskSeparate(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: stencilMaskSeparate - 1: (anonymous function) - 2: executeFrameFunction - 99: (duration) - 0: stencilOp(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: stencilOp - 1: (anonymous function) - 2: executeFrameFunction - 100: (duration) - 0: stencilOpSeparate(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: stencilOpSeparate - 1: (anonymous function) - 2: executeFrameFunction - 101: (duration) - 0: texImage2D(1, 2, 3, 4, 5, [object HTMLImageElement]) - swizzleTypes: [Number, Number, Number, Number, Number, Image] - trace: - 0: texImage2D - 1: (anonymous function) - 2: executeFrameFunction - 1: texImage2D(6, 7, 8, 9, 10, 11, 12, 13, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: texImage2D - 1: (anonymous function) - 2: executeFrameFunction - 102: (duration) - 0: texParameterf(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: texParameterf - 1: (anonymous function) - 2: executeFrameFunction - 103: (duration) - 0: texParameteri(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: texParameteri - 1: (anonymous function) - 2: executeFrameFunction - 104: (duration) - 0: texSubImage2D(1, 2, 3, 4, 5, 6, [object HTMLImageElement]) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Image] - trace: - 0: texSubImage2D - 1: (anonymous function) - 2: executeFrameFunction - 1: texSubImage2D(7, 8, 9, 10, 11, 12, 13, 14, 0) - swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number, TypedArray] - trace: - 0: texSubImage2D - 1: (anonymous function) - 2: executeFrameFunction - 105: (duration) - 0: uniform1f(0, 1) - swizzleTypes: [WebGLUniformLocation, Number] - trace: - 0: uniform1f - 1: (anonymous function) - 2: executeFrameFunction - 106: (duration) - 0: uniform1fv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform1fv - 1: (anonymous function) - 2: executeFrameFunction - 107: (duration) - 0: uniform1i(0, 1) - swizzleTypes: [WebGLUniformLocation, Number] - trace: - 0: uniform1i - 1: (anonymous function) - 2: executeFrameFunction - 108: (duration) - 0: uniform1iv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform1iv - 1: (anonymous function) - 2: executeFrameFunction - 109: (duration) - 0: uniform2f(0, 1, 2) - swizzleTypes: [WebGLUniformLocation, Number, Number] - trace: - 0: uniform2f - 1: (anonymous function) - 2: executeFrameFunction - 110: (duration) - 0: uniform2fv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform2fv - 1: (anonymous function) - 2: executeFrameFunction - 111: (duration) - 0: uniform2i(0, 1, 2) - swizzleTypes: [WebGLUniformLocation, Number, Number] - trace: - 0: uniform2i - 1: (anonymous function) - 2: executeFrameFunction - 112: (duration) - 0: uniform2iv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform2iv - 1: (anonymous function) - 2: executeFrameFunction - 113: (duration) - 0: uniform3f(0, 1, 2, 3) - swizzleTypes: [WebGLUniformLocation, Number, Number, Number] - trace: - 0: uniform3f - 1: (anonymous function) - 2: executeFrameFunction - 114: (duration) - 0: uniform3fv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform3fv - 1: (anonymous function) - 2: executeFrameFunction - 115: (duration) - 0: uniform3i(0, 1, 2, 3) - swizzleTypes: [WebGLUniformLocation, Number, Number, Number] - trace: - 0: uniform3i - 1: (anonymous function) - 2: executeFrameFunction - 116: (duration) - 0: uniform3iv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform3iv - 1: (anonymous function) - 2: executeFrameFunction - 117: (duration) - 0: uniform4f(0, 1, 2, 3, 4) - swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number] - trace: - 0: uniform4f - 1: (anonymous function) - 2: executeFrameFunction - 118: (duration) - 0: uniform4fv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform4fv - 1: (anonymous function) - 2: executeFrameFunction - 119: (duration) - 0: uniform4i(0, 1, 2, 3, 4) - swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number] - trace: - 0: uniform4i - 1: (anonymous function) - 2: executeFrameFunction - 120: (duration) - 0: uniform4iv(0, 0) - swizzleTypes: [WebGLUniformLocation, TypedArray] - trace: - 0: uniform4iv - 1: (anonymous function) - 2: executeFrameFunction - 121: (duration) - 0: uniformMatrix2fv(0, true, 0) - swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray] - trace: - 0: uniformMatrix2fv - 1: (anonymous function) - 2: executeFrameFunction - 122: (duration) - 0: uniformMatrix3fv(0, true, 0) - swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray] - trace: - 0: uniformMatrix3fv - 1: (anonymous function) - 2: executeFrameFunction - 123: (duration) - 0: uniformMatrix4fv(0, true, 0) - swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray] - trace: - 0: uniformMatrix4fv - 1: (anonymous function) - 2: executeFrameFunction - 124: (duration) - 0: useProgram(0) - swizzleTypes: [WebGLProgram] - trace: - 0: useProgram - 1: (anonymous function) - 2: executeFrameFunction - 125: (duration) - 0: validateProgram(0) - swizzleTypes: [WebGLProgram] - trace: - 0: validateProgram - 1: (anonymous function) - 2: executeFrameFunction - 126: (duration) - 0: vertexAttrib1f(1, 2) - swizzleTypes: [Number, Number] - trace: - 0: vertexAttrib1f - 1: (anonymous function) - 2: executeFrameFunction - 127: (duration) - 0: vertexAttrib1fv(1, 0) - swizzleTypes: [Number, TypedArray] - trace: - 0: vertexAttrib1fv - 1: (anonymous function) - 2: executeFrameFunction - 128: (duration) - 0: vertexAttrib2f(1, 2, 3) - swizzleTypes: [Number, Number, Number] - trace: - 0: vertexAttrib2f - 1: (anonymous function) - 2: executeFrameFunction - 129: (duration) - 0: vertexAttrib2fv(1, 0) - swizzleTypes: [Number, TypedArray] - trace: - 0: vertexAttrib2fv - 1: (anonymous function) - 2: executeFrameFunction - 130: (duration) - 0: vertexAttrib3f(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: vertexAttrib3f - 1: (anonymous function) - 2: executeFrameFunction - 131: (duration) - 0: vertexAttrib3fv(1, 0) - swizzleTypes: [Number, TypedArray] - trace: - 0: vertexAttrib3fv - 1: (anonymous function) - 2: executeFrameFunction - 132: (duration) - 0: vertexAttrib4f(1, 2, 3, 4, 5) - swizzleTypes: [Number, Number, Number, Number, Number] - trace: - 0: vertexAttrib4f - 1: (anonymous function) - 2: executeFrameFunction - 133: (duration) - 0: vertexAttrib4fv(1, 0) - swizzleTypes: [Number, TypedArray] - trace: - 0: vertexAttrib4fv - 1: (anonymous function) - 2: executeFrameFunction - 134: (duration) - 0: vertexAttribPointer(1, 2, 3, true, 5, 6) - swizzleTypes: [Number, Number, Number, Boolean, Number, Number] - trace: - 0: vertexAttribPointer - 1: (anonymous function) - 2: executeFrameFunction - 135: (duration) - 0: viewport(1, 2, 3, 4) - swizzleTypes: [Number, Number, Number, Number] - trace: - 0: viewport - 1: (anonymous function) - 2: executeFrameFunction - 136: (duration) - 0: width - trace: - 0: (anonymous function) - 1: executeFrameFunction - 1: width = 2 - swizzleTypes: [Number] - trace: - 0: (anonymous function) - 1: executeFrameFunction - 137: (duration) - 0: height - trace: - 0: (anonymous function) - 1: executeFrameFunction - 1: height = 2 - swizzleTypes: [Number] - trace: - 0: (anonymous function) - 1: executeFrameFunction - diff --git a/LayoutTests/platform/mac-ventura-wk2/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt b/LayoutTests/platform/mac-ventura-wk2/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt deleted file mode 100644 index 542eb5cda9f6f..0000000000000 --- a/LayoutTests/platform/mac-ventura-wk2/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ - - -(scrolling tree - (frame scrolling node - (scrollable area size width=785 height=600) - (total content size width=785 height=2016) - (last committed scroll position (0,0)) - (scrollable area parameters - (horizontal scroll elasticity 2) - (vertical scroll elasticity 2) - (horizontal scrollbar mode 0) - (vertical scrollbar mode 0) - (allows vertical scrolling 1)) - (layout viewport (0,0) width=785 height=600) - (min layoutViewport origin (0,0)) - (max layoutViewport origin (0,1416)) - (behavior for fixed 1))) diff --git a/LayoutTests/platform/mac-ventura/TestExpectations b/LayoutTests/platform/mac-ventura/TestExpectations deleted file mode 100644 index 964b034525a40..0000000000000 --- a/LayoutTests/platform/mac-ventura/TestExpectations +++ /dev/null @@ -1,45 +0,0 @@ -# Failing after OS migration rdar://112624778 (Migrate macOS Sonoma test expectations to OpenSource, add expectation files to Down-Levels (259373)) - -webkit.org/b/268789 [ Debug ] imported/w3c/web-platform-tests/css/css-break/table/repeated-section/special-elements-crash.html [ Skip ] - -# With CryptoKit, these tests start to work properly, but cryptoKit enablement is macOS 14.5 or higher so we need to mark them fail for 13.X and < 14.5 bots -# Instead of skipping them, we let them run atleast so that we have logs for the test cases in those logs that do actually work correctly. -imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits_curve25519.https.any.html [ Failure ] -imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits_curve25519.https.any.worker.html [ Failure ] -imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/eddsa_small_order_points.https.any.html [ Failure ] -imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/eddsa_small_order_points.https.any.worker.html [ Failure ] - -# HAVE(VOICEACTIVITYDETECTION) is false in Ventura. -http/wpt/mediasession/voiceActivityDetection.html [ Skip ] - -# Skip these tests that enable UnifiedPDFPlugin, since it's only meaningful for macOS 14+. -http/tests/pdf/linearized-pdf-in-iframe.html [ Skip ] -http/tests/pdf/linearized-pdf-in-display-none-iframe.html [ Skip ] -http/tests/pdf/page-in-window-update-with-linearized-pdf-in-display-none-iframe.html [ Skip ] -pdf/pdf-in-embed-rounded-border.html [ Skip ] -pdf/pdf-plugin-printing.html [ Skip ] -pdf/annotations/checkbox-set-active.html [ Skip ] -pdf/annotations/radio-buttons-select-second.html [ Skip ] -pdf/annotations/dropdown-select-second-option.html [ Skip ] - -# linkedOnOrAfter(Sequoa) for Cross Origin Redirect Downloads. -http/tests/download/anchor-download-redirect-cross-origin.html -http/tests/download/anchor-download-redirect-cross-origin-top-level.html - -# CoreMaterial is unavailable on Ventura. -apple-visual-effects [ Skip ] - -# These fail with an "IOSurface textures must use MTLStorageModeManaged" assertion on Ventura, but not on later OSes. -fast/webgpu/nocrash/fuzz-274161.html [ Skip ] -fast/webgpu/nocrash/fuzz-274270.html [ Skip ] -fast/webgpu/nocrash/fuzz-274334.html [ Skip ] -fast/webgpu/nocrash/fuzz-275294.html [ Skip ] -fast/webgpu/nocrash/fuzz-278545.html [ Skip ] -fast/webgpu/nocrash/fuzz-281614.html [ Skip ] - -# These fail with a shader validation error on Ventura, but not on later OSes. -fast/webgpu/nocrash/fuzz-283071.html [ Skip ] -fast/webgpu/nocrash/fuzz-283157.html [ Skip ] - -# webkit.org/b/285755 [EWS] macOS-Ventura-Release-WK2-Intel-Tests-EWS bots stuck in login page due to window server crashes -[ x86_64 ] fast/webgpu [ Skip ] diff --git a/LayoutTests/platform/mac-ventura/accessibility/datetime/input-datetime-local-label-value-expected.txt b/LayoutTests/platform/mac-ventura/accessibility/datetime/input-datetime-local-label-value-expected.txt deleted file mode 100644 index b37f8cfcef9cf..0000000000000 --- a/LayoutTests/platform/mac-ventura/accessibility/datetime/input-datetime-local-label-value-expected.txt +++ /dev/null @@ -1,27 +0,0 @@ -This tests input type=datetime-local label and value properties. - -datetime1: -PASS: datetime.title === 'AXTitle: Meeting time:' -AXValue: Oct 21, 2024 at 3:45 PM -AXDateValue: 2024-10-21 15:45:59 +0000 - -datetime2: -PASS: datetime.title === 'AXTitle: Meeting time:' -AXValue: Oct 21, 2024 at 3:45 PM -AXDateValue: 2024-10-21 15:45:59 +0000 - -datetime3: -PASS: datetime.title === 'AXTitle: Meeting time:' -AXValue: Oct 21, 2024 at 3:45 PM -AXDateValue: 2024-10-21 15:45:59 +0000 - -datetime4: -PASS: datetime.title === 'AXTitle: ' -AXValue: Oct 21, 2024 at 3:45 PM -AXDateValue: 2024-10-21 15:45:59 +0000 - - -PASS successfullyParsed is true - -TEST COMPLETE - Meeting time: Meeting time: diff --git a/LayoutTests/platform/mac-ventura/accessibility/datetime/input-time-label-value-expected.txt b/LayoutTests/platform/mac-ventura/accessibility/datetime/input-time-label-value-expected.txt deleted file mode 100644 index 0b603ca737547..0000000000000 --- a/LayoutTests/platform/mac-ventura/accessibility/datetime/input-time-label-value-expected.txt +++ /dev/null @@ -1,27 +0,0 @@ -This tests input type=time label and value properties. - -inputtime1: -PASS: inputtime.title === 'AXTitle: Meeting time:' -AXValue: 8:30 AM -PASS: inputtime.dateValue === 'AXDateValue: 1970-01-01 08:30:00 +0000' -inputtime2: -PASS: inputtime.title === 'AXTitle: Meeting time:' -AXValue: 8:30 AM -PASS: inputtime.dateValue === 'AXDateValue: 1970-01-01 08:30:00 +0000' -inputtime3: -PASS: inputtime.title === 'AXTitle: Meeting time:' -AXValue: 8:30 AM -PASS: inputtime.dateValue === 'AXDateValue: 1970-01-01 08:30:00 +0000' -inputtime4: -PASS: inputtime.title === 'AXTitle: ' -AXValue: 3:45 PM -PASS: inputtime.dateValue === 'AXDateValue: 1970-01-01 15:45:12 +0000' -inputtime5: -PASS: inputtime.title === 'AXTitle: ' -AXValue: -PASS: inputtime.dateValue === 'AXDateValue: 1970-01-01 12:30:00 +0000' - -PASS successfullyParsed is true - -TEST COMPLETE - Meeting time: Meeting time: diff --git a/LayoutTests/platform/mac-ventura/css2.1/t09-c5526c-display-00-e-expected.txt b/LayoutTests/platform/mac-ventura/css2.1/t09-c5526c-display-00-e-expected.txt deleted file mode 100644 index 4fab21e1c736a..0000000000000 --- a/LayoutTests/platform/mac-ventura/css2.1/t09-c5526c-display-00-e-expected.txt +++ /dev/null @@ -1,68 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x420 - RenderBlock {HTML} at (0,0) size 800x420 [color=#FFFFFF] [bgcolor=#0000FF] - RenderBody {BODY} at (15,15) size 490x390 [bgcolor=#FFFFFF] [border: (5px solid #000000)] - RenderBlock {DL} at (5,5) size 480x10 - RenderBlock (floating) {DT} at (5,5) size 80x310 [bgcolor=#CC0000] [border: (5px solid #000000)] - RenderText {#text} at (15,14) size 32x12 - text run at (15,14) width 32: "toggle" - RenderBlock (floating) {DD} at (95,5) size 380x310 [border: (10px solid #000000)] - RenderBlock {UL} at (20,20) size 340x0 - RenderBlock (floating) {LI} at (0,0) size 80x120 [color=#000000] [bgcolor=#FFCC00] [border: (5px solid #000000)] - RenderText {#text} at (15,14) size 40x12 - text run at (15,14) width 40: "the way" - RenderBlock (floating) {LI} at (90,0) size 160x110 [bgcolor=#000000] - RenderBlock {P} at (10,10) size 140x10 - RenderText {#text} at (0,-1) size 75x12 - text run at (0,-1) width 75: "the world ends" - RenderBlock (anonymous) at (10,20) size 140x0 - RenderInline {FORM} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (10,20) size 140x38 - RenderBlock {P} at (0,0) size 140x19 - RenderText {#text} at (0,3) size 29x12 - text run at (0,3) width 29: "bang " - RenderBlock {INPUT} at (30,3) size 13x12 [color=#000000] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,19) size 140x19 - RenderText {#text} at (0,3) size 47x12 - text run at (0,3) width 47: "whimper " - RenderBlock {INPUT} at (48,3) size 13x12 [color=#000000] - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (10,58) size 140x0 - RenderInline {FORM} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock (floating) {LI} at (259,0) size 81x120 [color=#000000] [bgcolor=#FFCC00] [border: (5px solid #000000)] - RenderText {#text} at (15,14) size 50x12 - text run at (15,14) width 50: "i grow old" - RenderBlock (floating) {LI} at (0,130) size 120x120 [bgcolor=#000000] - RenderText {#text} at (10,9) size 31x12 - text run at (10,9) width 31: "pluot?" - RenderBlock (floating) {BLOCKQUOTE} at (160,150) size 70x140 [color=#000000] [bgcolor=#FFCC00] [border: (10px solid #000000) (15px solid #000000) (20px solid #000000) (5px solid #000000)] - RenderBlock {ADDRESS} at (5,20) size 50x20 - RenderText {#text} at (0,-1) size 34x22 - text run at (0,-1) width 17: "bar" - text run at (0,9) width 34: "maids," - RenderBlock (floating) {H1} at (240,150) size 120x120 [bgcolor=#000000] - RenderText {#text} at (10,9) size 67x22 - text run at (10,9) width 57: "sing to me," - text run at (10,19) width 67: "erbarme dich" - RenderBlock {P} at (5,320) size 480x65 [color=#000000] - RenderText {#text} at (0,0) size 470x38 - text run at (0,0) width 470: "This is a nonsensical document, but syntactically valid HTML 4.0. All 100%-conformant CSS1" - text run at (0,13) width 394: "agents should be able to render the document elements above this paragraph" - text run at (0,26) width 206: "indistinguishably (to the pixel) from this " - RenderInline {A} at (205,26) size 104x12 [color=#999999] - RenderText {#text} at (205,26) size 104x12 - text run at (205,26) width 104: "reference rendering," - RenderText {#text} at (0,26) size 463x38 - text run at (308,26) width 5: " " - text run at (312,26) width 150: "(except font rasterization and" - text run at (0,39) width 463: "form widgets). All discrepancies should be traceable to CSS1 implementation shortcomings." - text run at (0,52) width 36: "Please " - RenderInline {A} at (35,52) size 87x12 [color=#CC0000] - RenderText {#text} at (35,52) size 87x12 - text run at (35,52) width 87: "report any errors" - RenderText {#text} at (121,52) size 283x12 - text run at (121,52) width 283: " you find between the CSS and the reference rendering." diff --git a/LayoutTests/platform/mac-ventura/css3/filters/composited-during-animation-layertree-expected.txt b/LayoutTests/platform/mac-ventura/css3/filters/composited-during-animation-layertree-expected.txt deleted file mode 100644 index 4c874b693292d..0000000000000 --- a/LayoutTests/platform/mac-ventura/css3/filters/composited-during-animation-layertree-expected.txt +++ /dev/null @@ -1,33 +0,0 @@ - - - - -(GraphicsLayer - (anchor 0.00 0.00) - (bounds 800.00 600.00) - (children 1 - (GraphicsLayer - (bounds 800.00 600.00) - (contentsOpaque 1) - (children 4 - (GraphicsLayer - (position 18.00 18.00) - (bounds 160.00 90.00) - ) - (GraphicsLayer - (position 18.00 132.00) - (bounds 160.00 90.00) - ) - (GraphicsLayer - (position 18.00 246.00) - (bounds 160.00 90.00) - ) - (GraphicsLayer - (position 18.00 360.00) - (bounds 160.00 90.00) - ) - ) - ) - ) -) - diff --git a/LayoutTests/platform/mac-ventura/editing/caret/caret-position-sideways-lr-expected.txt b/LayoutTests/platform/mac-ventura/editing/caret/caret-position-sideways-lr-expected.txt deleted file mode 100644 index 3e235c92136c3..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/caret/caret-position-sideways-lr-expected.txt +++ /dev/null @@ -1,26 +0,0 @@ -This is a test of writingsideways in vertical text -with multiline text and alongwordthat'slong andanotherword. -Bug 286961 : 62,44,20,1 -Click at 5, 5 for left above first line : 17,21,25,1 -Click at 5, 275 for right above first line : 17,21,25,1 -Click at 25, 5 for left of first line : 17,21,25,1 -Click at 25, 275 for right of first line : 17,237,25,1 -Click at 45, 5 for left of second line : 42,21,20,1 -Click at 45, 275 for right of second line : 42,248,20,1 -Click at 65, 5 for left of third line : 62,21,20,1 -Click at 65, 275 for right of third line : 62,176,20,1 -Click at 85, 5 for left of fourth line : 82,21,20,1 -Click at 85, 275 for right of fourth line : 82,262,20,1 -Click at 105, 5 for left of fifth line : 102,21,19,1 -Click at 105, 275 for right of fifth line : 102,68,19,1 -Click at 125, 5 for left of sixth line : 121,21,20,1 -Click at 125, 275 for right of sixth line : 121,260,20,1 -Click at 145, 5 for left of seventh line : 141,21,20,1 -Click at 145, 275 for right of seventh line : 141,200,20,1 -Click at 170, 5 for left below last line : 141,200,20,1 -Click at 170, 275 for right below last line : 141,200,20,1 -Click at 25, 30 for inside first root inline fragment : 17,32,25,1 -Click at 125, 30 for inside middle fragment of root inline fragment : 121,32,20,1 -Click at 45, 30 for inside middle fragment of non-root inline fragment : 42,32,20,1 -Click at 65, 30 for inside last fragment of non-root inline fragment : 62,32,20,1 -Click at 85, 220 for inside unfragmented non-root inline : 82,225,20,1 diff --git a/LayoutTests/platform/mac-ventura/editing/caret/caret-position-vertical-rl-expected.txt b/LayoutTests/platform/mac-ventura/editing/caret/caret-position-vertical-rl-expected.txt deleted file mode 100644 index a725d1690c32b..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/caret/caret-position-vertical-rl-expected.txt +++ /dev/null @@ -1,26 +0,0 @@ -This is a test of writingsideways in vertical text -with multiline text and alongwordthat'slong andanotherword. -Bug 286961 : 82,60,20,1 -Click at 5, 5 for left above first line : 42,20,25,1 -Click at 5, 275 for right above first line : 42,20,25,1 -Click at 25, 5 for left of first line : 42,32,25,1 -Click at 25, 275 for right of first line : 62,248,20,1 -Click at 45, 5 for left of second line : 82,60,20,1 -Click at 45, 275 for right of second line : 82,176,20,1 -Click at 65, 5 for left of third line : 82,176,20,1 -Click at 65, 275 for right of third line : 82,176,20,1 -Click at 85, 5 for left of fourth line : 102,80,20,1 -Click at 85, 275 for right of fourth line : 121,100,19,1 -Click at 105, 5 for left of fifth line : 141,120,20,1 -Click at 105, 275 for right of fifth line : 141,260,20,1 -Click at 125, 5 for left of sixth line : 161,140,20,1 -Click at 125, 275 for right of sixth line : 161,200,20,1 -Click at 145, 5 for left of seventh line : 161,140,20,1 -Click at 145, 275 for right of seventh line : 161,200,20,1 -Click at 170, 5 for left below last line : 161,200,20,1 -Click at 170, 275 for right below last line : 161,200,20,1 -Click at 25, 30 for inside first root inline fragment : 42,32,25,1 -Click at 125, 30 for inside middle fragment of root inline fragment : 141,120,20,1 -Click at 45, 30 for inside middle fragment of non-root inline fragment : 62,40,20,1 -Click at 65, 30 for inside last fragment of non-root inline fragment : 82,60,20,1 -Click at 85, 220 for inside unfragmented non-root inline : 102,225,20,1 diff --git a/LayoutTests/platform/mac-ventura/editing/caret/color-span-inside-editable-background-expected.html b/LayoutTests/platform/mac-ventura/editing/caret/color-span-inside-editable-background-expected.html deleted file mode 100644 index 3de4d420ea37f..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/caret/color-span-inside-editable-background-expected.html +++ /dev/null @@ -1,4 +0,0 @@ -This test makes sure that carets in content editable divs changes color if there is a span inside them with a foreground color specified. -
-
-
\ No newline at end of file diff --git a/LayoutTests/platform/mac-ventura/editing/caret/color-span-inside-editable-expected.html b/LayoutTests/platform/mac-ventura/editing/caret/color-span-inside-editable-expected.html deleted file mode 100644 index 3de4d420ea37f..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/caret/color-span-inside-editable-expected.html +++ /dev/null @@ -1,4 +0,0 @@ -This test makes sure that carets in content editable divs changes color if there is a span inside them with a foreground color specified. -
-
-
\ No newline at end of file diff --git a/LayoutTests/platform/mac-ventura/editing/caret/insert-paragraph-does-not-paint-stale-carets-expected.txt b/LayoutTests/platform/mac-ventura/editing/caret/insert-paragraph-does-not-paint-stale-carets-expected.txt deleted file mode 100644 index dabf74dd52605..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/caret/insert-paragraph-does-not-paint-stale-carets-expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -(repaint rects (rect 25 25 750 18) (rect 25 43 750 18) (rect 25 25 1 19) (rect 25 43 1 18) ) (repaint rects (rect 25 61 750 18) (rect 25 43 1 18) (rect 25 61 1 18) ) (repaint rects (rect 25 79 750 18) (rect 25 61 1 18) (rect 25 79 1 18) ) - - - - - diff --git a/LayoutTests/platform/mac-ventura/editing/input/caret-at-the-edge-of-contenteditable-expected.txt b/LayoutTests/platform/mac-ventura/editing/input/caret-at-the-edge-of-contenteditable-expected.txt deleted file mode 100644 index 2e5927d99d1f9..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/input/caret-at-the-edge-of-contenteditable-expected.txt +++ /dev/null @@ -1,14 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x72 - RenderBlock {HTML} at (0,0) size 800x72 - RenderBody {BODY} at (8,8) size 784x56 - RenderBlock {DIV} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 761x36 - text run at (0,0) width 761: "When the caret reaches the edge of the input box or content editable div, on the next input if must jump to the center of" - text run at (0,18) width 73: "the control." -layer at (8,44) size 82x20 clip at (9,45) size 80x18 scrollX 41 scrollWidth 337 - RenderBlock {DIV} at (0,36) size 82x20 [border: (1px solid #000000)] - RenderText {#text} at (1,1) size 336x18 - text run at (1,1) width 336: "012345678901012345678901234567890123456789" -caret: position 12 of child 0 {#text} of child 5 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/editing/input/caret-at-the-edge-of-input-expected.txt b/LayoutTests/platform/mac-ventura/editing/input/caret-at-the-edge-of-input-expected.txt deleted file mode 100644 index ea155acd21702..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/input/caret-at-the-edge-of-input-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x53 - RenderBlock {HTML} at (0,0) size 800x53 - RenderBody {BODY} at (8,8) size 784x37 - RenderBlock {DIV} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 692x18 - text run at (0,0) width 692: "When the caret reaches the edge of the input box, on the next input if must jump to the center of the control." - RenderBlock (anonymous) at (0,18) size 784x19 - RenderTextControl {INPUT} at (0,0) size 77x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,29) size 71x13 scrollX 39 scrollWidth 282 - RenderBlock {DIV} at (3,3) size 71x13 - RenderText {#text} at (0,0) size 282x13 - text run at (0,0) width 282: "012345678901012345678901234567890123456789" -caret: position 12 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 3 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/editing/input/editable-container-with-word-wrap-normal-expected.txt b/LayoutTests/platform/mac-ventura/editing/input/editable-container-with-word-wrap-normal-expected.txt deleted file mode 100644 index 8799de613f6b8..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/input/editable-container-with-word-wrap-normal-expected.txt +++ /dev/null @@ -1,16 +0,0 @@ -Testcase for bug http://www.webkit.org/b/89649. The test case checks if caret is drawn properly(especially scrolls properly) inside a editable container having word-wrap:normal. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -To manually test, move the caret to the end of the line. -The content must scroll for the caret to reach the end of the editable text. -PASS editableContainer.scrollLeft > 0 is true - -Final caret rect is calculated by following constraints -1) ScrollWidth = text content width + caret width -2) Caret rect is always within container bounding box (thus substracting the scroll left) -PASS startCaretRect.left + editableContainer.scrollWidth - editableContainer.scrollLeft - caretWidth is finalCaretRect.right -PASS successfullyParsed is true - -TEST COMPLETE - diff --git a/LayoutTests/platform/mac-ventura/editing/inserting/before-after-input-element-expected.txt b/LayoutTests/platform/mac-ventura/editing/inserting/before-after-input-element-expected.txt deleted file mode 100644 index 586ac74a0647a..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/inserting/before-after-input-element-expected.txt +++ /dev/null @@ -1,27 +0,0 @@ -EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document -EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 5 of #text > DIV > BODY > HTML > #document to 5 of #text > DIV > BODY > HTML > #document toDOMRange:range from 5 of #text > DIV > BODY > HTML > #document to 5 of #text > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 2 of DIV > BODY > HTML > #document to 2 of DIV > BODY > HTML > #document toDOMRange:range from 5 of #text > DIV > BODY > HTML > #document to 5 of #text > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 343x18 - text run at (0,0) width 343: "This tests text insertion before/after an input element." - RenderBlock {DIV} at (0,34) size 784x19 - RenderText {#text} at (0,0) size 36x18 - text run at (0,0) width 36: "Hello" - RenderTextControl {INPUT} at (35,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (182,0) size 41x18 - text run at (182,0) width 41: "World" -layer at (47,45) size 141x13 backgroundClip at (47,45) size 140x13 clip at (47,45) size 140x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 5 of child 2 {#text} of child 2 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/editing/inserting/multiple-lines-selected-expected.txt b/LayoutTests/platform/mac-ventura/editing/inserting/multiple-lines-selected-expected.txt deleted file mode 100644 index 59a81d79da687..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/inserting/multiple-lines-selected-expected.txt +++ /dev/null @@ -1,28 +0,0 @@ -EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 2 of DIV > BODY > HTML > #document -EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of DIV > DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document toDOMRange:range from 0 of DIV > DIV > BODY > HTML > #document to 0 of DIV > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 775x36 - text run at (0,0) width 571: "This tests inserting a paragraph separator into a selection that spans multiple paragraphs. " - text run at (570,0) width 205: "'ar' should be on the line after 'f'" - text run at (0,18) width 264: "and the caret should be just before the 'a'." - RenderBlock {DIV} at (0,52) size 784x36 - RenderBlock {DIV} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 6x18 - text run at (0,0) width 6: "f" - RenderBlock {DIV} at (0,18) size 784x18 - RenderText {#text} at (0,0) size 13x18 - text run at (0,0) width 13: "ar" -caret: position 0 of child 0 {#text} of child 1 {DIV} of child 2 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/editing/pasteboard/4806874-expected.txt b/LayoutTests/platform/mac-ventura/editing/pasteboard/4806874-expected.txt deleted file mode 100644 index 1aa7b9f576b00..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/pasteboard/4806874-expected.txt +++ /dev/null @@ -1,18 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 553x18 - text run at (0,0) width 251: "This tests for an infinite loop on Paste. " - text run at (250,0) width 303: "You should see 'Hello: ' and then an input field." - RenderBlock {DIV} at (0,34) size 784x19 - RenderText {#text} at (0,0) size 36x18 - text run at (0,0) width 36: "Hello" - RenderTextControl {INPUT} at (35,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (182,0) size 5x18 - text run at (182,0) width 5: ":" -layer at (47,45) size 141x13 backgroundClip at (47,45) size 140x13 clip at (47,45) size 140x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 1 of child 1 {INPUT} of child 2 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/editing/pasteboard/input-field-1-expected.txt b/LayoutTests/platform/mac-ventura/editing/pasteboard/input-field-1-expected.txt deleted file mode 100644 index b256fbde6caf9..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/pasteboard/input-field-1-expected.txt +++ /dev/null @@ -1,32 +0,0 @@ -EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document -EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document toDOMRange:range from 0 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldInsertNode:#document-fragment replacingDOMRange:range from 1 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document givenAction:WebViewInsertActionPasted -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document toDOMRange:range from 2 of DIV > BODY > HTML > #document to 2 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 240x18 - text run at (0,0) width 240: "This tests Copy/Paste of a input field." - RenderBlock {DIV} at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTextControl {INPUT} at (146,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {UL} at (0,69) size 784x18 - RenderListItem {LI} at (40,0) size 744x18 - RenderListMarker at (-17,0) size 7x18: bullet - RenderText {#text} at (0,0) size 44x18 - text run at (0,0) width 44: "Passed" -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (158,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 1 of child 1 {INPUT} of child 2 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/editing/pasteboard/interchange-newline-2-expected.txt b/LayoutTests/platform/mac-ventura/editing/pasteboard/interchange-newline-2-expected.txt deleted file mode 100644 index cc90ef561272c..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/pasteboard/interchange-newline-2-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 2 of DIV > BODY > HTML > #document -EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > DIV > BODY > HTML > #document to 3 of #text > DIV > BODY > HTML > #document toDOMRange:range from 0 of DIV > DIV > BODY > HTML > #document to 0 of DIV > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification -EDITING DELEGATE: webViewDidEndEditing:WebViewDidEndEditingNotification -This demonstrates a bug in interchange newline handling during paste. -The selection being pasted into contain multiple blocks, which breaks the old code in paste that handled interchange newlines. -|
-| "fbar" -| "baz" -|
-| "<#selection-caret>ar" diff --git a/LayoutTests/platform/mac-ventura/editing/selection/3690703-2-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/3690703-2-expected.txt deleted file mode 100644 index 0652d6174260b..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/3690703-2-expected.txt +++ /dev/null @@ -1,152 +0,0 @@ -EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > CENTER > BODY > HTML > #document to 6 of DIV > CENTER > BODY > HTML > #document -EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,3) size 784x581 [bgcolor=#FFFFFF] - RenderBlock {CENTER} at (0,0) size 784x252 - RenderTable {TABLE} at (0,0) size 784x19 - RenderTableSection {TBODY} at (0,0) size 784x19 - RenderTableRow {TR} at (0,0) size 784x15 - RenderTableCell {TD} at (0,0) size 784x15 [r=0 c=0 rs=1 cs=1] - RenderInline {FONT} at (682,0) size 102x15 - RenderInline {A} at (682,0) size 102x15 [color=#0000CC] - RenderText {#text} at (682,0) size 102x15 - text run at (682,0) width 102: "Personalized Home" - RenderTableRow {TR} at (0,15) size 784x4 - RenderTableCell {TD} at (0,16) size 784x2 [r=1 c=0 rs=1 cs=1] - RenderImage {IMG} at (0,1) size 1x2 - RenderBlock (anonymous) at (0,19) size 784x36 - RenderBR {BR} at (392,0) size 0x18 - RenderBR {BR} at (392,18) size 0x18 - RenderBlock {DIV} at (0,55) size 784x99 [border: (2px solid #AAAAFF)] - RenderTable {TABLE} at (214,2) size 355x23 - RenderTableSection {TBODY} at (0,0) size 355x23 - RenderTableRow {TR} at (0,0) size 355x23 - RenderTableCell {TD} at (0,0) size 355x23 [r=0 c=0 rs=1 cs=1] - RenderInline {FONT} at (4,4) size 347x15 - RenderInline {B} at (4,4) size 26x15 - RenderText {#text} at (4,4) size 26x15 - text run at (4,4) width 26: "Web" - RenderText {#text} at (29,4) size 14x15 - text run at (29,4) width 14: " " - RenderInline {A} at (42,4) size 38x15 [color=#0000CC] - RenderText {#text} at (42,4) size 38x15 - text run at (42,4) width 38: "Images" - RenderText {#text} at (79,4) size 14x15 - text run at (79,4) width 14: " " - RenderInline {A} at (92,4) size 40x15 [color=#0000CC] - RenderText {#text} at (92,4) size 40x15 - text run at (92,4) width 40: "Groups" - RenderText {#text} at (131,4) size 14x15 - text run at (131,4) width 14: " " - RenderInline {A} at (144,4) size 30x15 [color=#0000CC] - RenderText {#text} at (144,4) size 30x15 - text run at (144,4) width 30: "News" - RenderText {#text} at (173,4) size 14x15 - text run at (173,4) width 14: " " - RenderInline {A} at (186,4) size 42x15 [color=#0000CC] - RenderText {#text} at (186,4) size 42x15 - text run at (186,4) width 42: "Froogle" - RenderText {#text} at (227,4) size 14x15 - text run at (227,4) width 14: " " - RenderInline {A} at (240,4) size 30x15 [color=#0000CC] - RenderText {#text} at (240,4) size 30x15 - text run at (240,4) width 30: "Local" - RenderInline {SUP} at (269,0) size 0x14 - RenderInline {A} at (269,4) size 30x15 - RenderInline {FONT} at (269,4) size 30x15 [color=#FF0000] - RenderText {#text} at (269,4) size 30x15 - text run at (269,4) width 30: "New!" - RenderText {#text} at (298,4) size 14x15 - text run at (298,4) width 14: " " - RenderInline {B} at (311,4) size 39x15 - RenderInline {A} at (311,4) size 39x15 [color=#0000CC] - RenderText {#text} at (311,4) size 40x15 - text run at (311,4) width 40: "more \x{BB}" - RenderTable {TABLE} at (2,25) size 780x39 - RenderTableSection {TBODY} at (0,0) size 780x39 - RenderTableRow {TR} at (0,0) size 780x39 - RenderTableCell {TD} at (0,10) size 195x19 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,10) size 4x19 - text run at (0,0) width 4: " " - RenderTableCell {TD} at (194,1) size 392x37 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,1) size 392x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (391,1) size 1x18 - RenderButton {INPUT} at (95,20) size 94x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 77x13 - RenderText at (0,0) size 77x13 - text run at (0,0) width 77: "Google Search" - RenderButton {INPUT} at (188,20) size 108x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 92x13 - RenderText at (0,0) size 92x13 - text run at (0,0) width 92: "I'm Feeling Lucky" - RenderTableCell {TD} at (585,0) size 196x39 [r=0 c=2 rs=1 cs=1] - RenderInline {FONT} at (0,0) size 76x39 - RenderText {#text} at (0,0) size 5x13 - text run at (0,0) width 5: " " - RenderInline {A} at (5,0) size 71x13 [color=#0000CC] - RenderText {#text} at (5,0) size 71x13 - text run at (5,0) width 71: "Advanced Search" - RenderBR {BR} at (75,0) size 1x13 - RenderText {#text} at (0,13) size 5x13 - text run at (0,13) width 5: " " - RenderInline {A} at (5,13) size 47x13 [color=#0000CC] - RenderText {#text} at (5,13) size 47x13 - text run at (5,13) width 47: "Preferences" - RenderBR {BR} at (51,13) size 1x13 - RenderText {#text} at (0,26) size 5x13 - text run at (0,26) width 5: " " - RenderInline {A} at (5,26) size 65x13 [color=#0000CC] - RenderText {#text} at (5,26) size 65x13 - text run at (5,26) width 65: "Language Tools" - RenderBlock (anonymous) at (2,64) size 780x33 - RenderBR {BR} at (390,0) size 0x18 - RenderInline {FONT} at (317,18) size 146x15 - RenderInline {FONT} at (317,18) size 30x15 [color=#FF0000] - RenderText {#text} at (317,18) size 30x15 - text run at (317,18) width 30: "New!" - RenderText {#text} at (346,18) size 4x15 - text run at (346,18) width 4: " " - RenderInline {A} at (349,18) size 111x15 [color=#0000CC] - RenderText {#text} at (349,18) size 111x15 - text run at (349,18) width 111: "Personalize this page" - RenderText {#text} at (459,18) size 4x15 - text run at (459,18) width 4: "." - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,154) size 784x69 - RenderBR {BR} at (392,0) size 0x18 - RenderBR {BR} at (392,18) size 0x18 - RenderBR {BR} at (392,36) size 0x18 - RenderInline {FONT} at (237,54) size 310x15 - RenderInline {A} at (237,54) size 116x15 [color=#0000CC] - RenderText {#text} at (237,54) size 116x15 - text run at (237,54) width 116: "Advertising Programs" - RenderText {#text} at (352,54) size 11x15 - text run at (352,54) width 11: " - " - RenderInline {A} at (362,54) size 100x15 [color=#0000CC] - RenderText {#text} at (362,54) size 100x15 - text run at (362,54) width 100: "Business Solutions" - RenderText {#text} at (461,54) size 12x15 - text run at (461,54) width 12: " - " - RenderInline {A} at (472,54) size 75x15 [color=#0000CC] - RenderText {#text} at (472,54) size 75x15 - text run at (472,54) width 75: "About Google" - RenderBlock {P} at (0,239) size 784x13 - RenderInline {FONT} at (362,0) size 60x13 - RenderText {#text} at (362,0) size 60x13 - text run at (362,0) width 60: "\x{A9}2005 Google" -layer at (207,87) size 386x13 - RenderBlock {DIV} at (3,3) size 386x13 -selection start: position 0 of child 3 {INPUT} of child 1 {TD} of child 0 {TR} of child 0 {TBODY} of child 2 {TABLE} of child 4 {DIV} of child 0 {CENTER} of body -selection end: position 1 of child 2 {BR} of child 0 {FONT} of child 2 {TD} of child 0 {TR} of child 0 {TBODY} of child 2 {TABLE} of child 4 {DIV} of child 0 {CENTER} of body diff --git a/LayoutTests/platform/mac-ventura/editing/selection/3690703-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/3690703-expected.txt deleted file mode 100644 index 399abaaffe429..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/3690703-expected.txt +++ /dev/null @@ -1,154 +0,0 @@ -EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > CENTER > BODY > HTML > #document to 6 of DIV > CENTER > BODY > HTML > #document -EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,3) size 784x581 [bgcolor=#FFFFFF] - RenderBlock {CENTER} at (0,0) size 784x252 - RenderTable {TABLE} at (0,0) size 784x19 - RenderTableSection {TBODY} at (0,0) size 784x19 - RenderTableRow {TR} at (0,0) size 784x15 - RenderTableCell {TD} at (0,0) size 784x15 [r=0 c=0 rs=1 cs=1] - RenderInline {FONT} at (682,0) size 102x15 - RenderInline {A} at (682,0) size 102x15 [color=#0000CC] - RenderText {#text} at (682,0) size 102x15 - text run at (682,0) width 102: "Personalized Home" - RenderTableRow {TR} at (0,15) size 784x4 - RenderTableCell {TD} at (0,16) size 784x2 [r=1 c=0 rs=1 cs=1] - RenderImage {IMG} at (0,1) size 1x2 - RenderBlock (anonymous) at (0,19) size 784x36 - RenderBR {BR} at (392,0) size 0x18 - RenderBR {BR} at (392,18) size 0x18 - RenderBlock {DIV} at (0,55) size 784x99 [border: (2px solid #AAAAFF)] - RenderTable {TABLE} at (214,2) size 355x23 - RenderTableSection {TBODY} at (0,0) size 355x23 - RenderTableRow {TR} at (0,0) size 355x23 - RenderTableCell {TD} at (0,0) size 355x23 [r=0 c=0 rs=1 cs=1] - RenderInline {FONT} at (4,4) size 347x15 - RenderInline {B} at (4,4) size 26x15 - RenderText {#text} at (4,4) size 26x15 - text run at (4,4) width 26: "Web" - RenderText {#text} at (29,4) size 14x15 - text run at (29,4) width 14: " " - RenderInline {A} at (42,4) size 38x15 [color=#0000CC] - RenderText {#text} at (42,4) size 38x15 - text run at (42,4) width 38: "Images" - RenderText {#text} at (79,4) size 14x15 - text run at (79,4) width 14: " " - RenderInline {A} at (92,4) size 40x15 [color=#0000CC] - RenderText {#text} at (92,4) size 40x15 - text run at (92,4) width 40: "Groups" - RenderText {#text} at (131,4) size 14x15 - text run at (131,4) width 14: " " - RenderInline {A} at (144,4) size 30x15 [color=#0000CC] - RenderText {#text} at (144,4) size 30x15 - text run at (144,4) width 30: "News" - RenderText {#text} at (173,4) size 14x15 - text run at (173,4) width 14: " " - RenderInline {A} at (186,4) size 42x15 [color=#0000CC] - RenderText {#text} at (186,4) size 42x15 - text run at (186,4) width 42: "Froogle" - RenderText {#text} at (227,4) size 14x15 - text run at (227,4) width 14: " " - RenderInline {A} at (240,4) size 30x15 [color=#0000CC] - RenderText {#text} at (240,4) size 30x15 - text run at (240,4) width 30: "Local" - RenderInline {SUP} at (269,0) size 0x14 - RenderInline {A} at (269,4) size 30x15 - RenderInline {FONT} at (269,4) size 30x15 [color=#FF0000] - RenderText {#text} at (269,4) size 30x15 - text run at (269,4) width 30: "New!" - RenderText {#text} at (298,4) size 14x15 - text run at (298,4) width 14: " " - RenderInline {B} at (311,4) size 39x15 - RenderInline {A} at (311,4) size 39x15 [color=#0000CC] - RenderText {#text} at (311,4) size 40x15 - text run at (311,4) width 40: "more \x{BB}" - RenderTable {TABLE} at (2,25) size 780x39 - RenderTableSection {TBODY} at (0,0) size 780x39 - RenderTableRow {TR} at (0,0) size 780x39 - RenderTableCell {TD} at (0,10) size 195x19 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,10) size 4x19 - text run at (0,0) width 4: " " - RenderTableCell {TD} at (194,1) size 392x37 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,1) size 392x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (391,1) size 1x18 - RenderButton {INPUT} at (95,20) size 94x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 77x13 - RenderText at (0,0) size 77x13 - text run at (0,0) width 77: "Google Search" - RenderButton {INPUT} at (188,20) size 108x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 92x13 - RenderText at (0,0) size 92x13 - text run at (0,0) width 92: "I'm Feeling Lucky" - RenderTableCell {TD} at (585,0) size 196x39 [r=0 c=2 rs=1 cs=1] - RenderInline {FONT} at (0,0) size 76x39 - RenderText {#text} at (0,0) size 5x13 - text run at (0,0) width 5: " " - RenderInline {A} at (5,0) size 71x13 [color=#0000CC] - RenderText {#text} at (5,0) size 71x13 - text run at (5,0) width 71: "Advanced Search" - RenderBR {BR} at (75,0) size 1x13 - RenderText {#text} at (0,13) size 5x13 - text run at (0,13) width 5: " " - RenderInline {A} at (5,13) size 47x13 [color=#0000CC] - RenderText {#text} at (5,13) size 47x13 - text run at (5,13) width 47: "Preferences" - RenderBR {BR} at (51,13) size 1x13 - RenderText {#text} at (0,26) size 5x13 - text run at (0,26) width 5: " " - RenderInline {A} at (5,26) size 65x13 [color=#0000CC] - RenderText {#text} at (5,26) size 65x13 - text run at (5,26) width 65: "Language Tools" - RenderBlock (anonymous) at (2,64) size 780x33 - RenderBR {BR} at (390,0) size 0x18 - RenderInline {FONT} at (317,18) size 146x15 - RenderInline {FONT} at (317,18) size 30x15 [color=#FF0000] - RenderText {#text} at (317,18) size 30x15 - text run at (317,18) width 30: "New!" - RenderText {#text} at (346,18) size 4x15 - text run at (346,18) width 4: " " - RenderInline {A} at (349,18) size 111x15 [color=#0000CC] - RenderText {#text} at (349,18) size 111x15 - text run at (349,18) width 111: "Personalize this page" - RenderText {#text} at (459,18) size 4x15 - text run at (459,18) width 4: "." - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,154) size 784x69 - RenderBR {BR} at (392,0) size 0x18 - RenderBR {BR} at (392,18) size 0x18 - RenderBR {BR} at (392,36) size 0x18 - RenderInline {FONT} at (237,54) size 310x15 - RenderInline {A} at (237,54) size 116x15 [color=#0000CC] - RenderText {#text} at (237,54) size 116x15 - text run at (237,54) width 116: "Advertising Programs" - RenderText {#text} at (352,54) size 11x15 - text run at (352,54) width 11: " - " - RenderInline {A} at (362,54) size 100x15 [color=#0000CC] - RenderText {#text} at (362,54) size 100x15 - text run at (362,54) width 100: "Business Solutions" - RenderText {#text} at (461,54) size 12x15 - text run at (461,54) width 12: " - " - RenderInline {A} at (472,54) size 75x15 [color=#0000CC] - RenderText {#text} at (472,54) size 75x15 - text run at (472,54) width 75: "About Google" - RenderBlock {P} at (0,239) size 784x13 - RenderInline {FONT} at (362,0) size 60x13 - RenderText {#text} at (362,0) size 60x13 - text run at (362,0) width 60: "\x{A9}2005 Google" -layer at (207,87) size 386x13 - RenderBlock {DIV} at (3,3) size 386x13 -selection start: position 0 of child 1 {TABLE} of child 4 {DIV} of child 0 {CENTER} of body -selection end: position 1 of child 3 {#text} of child 4 {FONT} of child 4 {DIV} of child 0 {CENTER} of body diff --git a/LayoutTests/platform/mac-ventura/editing/selection/3690719-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/3690719-expected.txt deleted file mode 100644 index 18626ce16042c..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/3690719-expected.txt +++ /dev/null @@ -1,146 +0,0 @@ -EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > CENTER > BODY > HTML > #document to 6 of DIV > CENTER > BODY > HTML > #document -EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of DIV > CENTER > BODY > HTML > #document to 1 of DIV > CENTER > BODY > HTML > #document toDOMRange:range from 1 of DIV > CENTER > BODY > HTML > #document to 1 of #text > FONT > DIV > CENTER > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,3) size 784x581 [bgcolor=#FFFFFF] - RenderBlock {CENTER} at (0,0) size 784x252 - RenderTable {TABLE} at (0,0) size 784x19 - RenderTableSection {TBODY} at (0,0) size 784x19 - RenderTableRow {TR} at (0,0) size 784x15 - RenderTableCell {TD} at (0,0) size 784x15 [r=0 c=0 rs=1 cs=1] - RenderInline {FONT} at (682,0) size 102x15 - RenderInline {A} at (682,0) size 102x15 [color=#0000CC] - RenderText {#text} at (682,0) size 102x15 - text run at (682,0) width 102: "Personalized Home" - RenderTableRow {TR} at (0,15) size 784x4 - RenderTableCell {TD} at (0,16) size 784x2 [r=1 c=0 rs=1 cs=1] - RenderImage {IMG} at (0,1) size 1x2 - RenderBlock (anonymous) at (0,19) size 784x36 - RenderBR {BR} at (392,0) size 0x18 - RenderBR {BR} at (392,18) size 0x18 - RenderBlock {DIV} at (0,55) size 784x99 [border: (2px solid #AAAAFF)] - RenderTable {TABLE} at (214,2) size 355x23 - RenderTableSection {TBODY} at (0,0) size 355x23 - RenderTableRow {TR} at (0,0) size 355x23 - RenderTableCell {TD} at (0,0) size 355x23 [r=0 c=0 rs=1 cs=1] - RenderInline {FONT} at (4,4) size 347x15 - RenderInline {B} at (4,4) size 26x15 - RenderText {#text} at (4,4) size 26x15 - text run at (4,4) width 26: "Web" - RenderText {#text} at (29,4) size 14x15 - text run at (29,4) width 14: " " - RenderInline {A} at (42,4) size 38x15 [color=#0000CC] - RenderText {#text} at (42,4) size 38x15 - text run at (42,4) width 38: "Images" - RenderText {#text} at (79,4) size 14x15 - text run at (79,4) width 14: " " - RenderInline {A} at (92,4) size 40x15 [color=#0000CC] - RenderText {#text} at (92,4) size 40x15 - text run at (92,4) width 40: "Groups" - RenderText {#text} at (131,4) size 14x15 - text run at (131,4) width 14: " " - RenderInline {A} at (144,4) size 30x15 [color=#0000CC] - RenderText {#text} at (144,4) size 30x15 - text run at (144,4) width 30: "News" - RenderText {#text} at (173,4) size 14x15 - text run at (173,4) width 14: " " - RenderInline {A} at (186,4) size 42x15 [color=#0000CC] - RenderText {#text} at (186,4) size 42x15 - text run at (186,4) width 42: "Froogle" - RenderText {#text} at (227,4) size 14x15 - text run at (227,4) width 14: " " - RenderInline {A} at (240,4) size 30x15 [color=#0000CC] - RenderText {#text} at (240,4) size 30x15 - text run at (240,4) width 30: "Local" - RenderInline {SUP} at (269,0) size 0x14 - RenderInline {A} at (269,4) size 30x15 - RenderInline {FONT} at (269,4) size 30x15 [color=#FF0000] - RenderText {#text} at (269,4) size 30x15 - text run at (269,4) width 30: "New!" - RenderText {#text} at (298,4) size 14x15 - text run at (298,4) width 14: " " - RenderInline {B} at (311,4) size 39x15 - RenderInline {A} at (311,4) size 39x15 [color=#0000CC] - RenderText {#text} at (311,4) size 40x15 - text run at (311,4) width 40: "more \x{BB}" - RenderTable {TABLE} at (2,25) size 780x39 - RenderTableSection {TBODY} at (0,0) size 780x39 - RenderTableRow {TR} at (0,0) size 780x39 - RenderTableCell {TD} at (0,10) size 195x19 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,10) size 4x19 - text run at (0,0) width 4: " " - RenderTableCell {TD} at (194,1) size 392x37 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,1) size 392x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (391,1) size 1x18 - RenderButton {INPUT} at (95,20) size 94x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 77x13 - RenderText at (0,0) size 77x13 - text run at (0,0) width 77: "Google Search" - RenderButton {INPUT} at (188,20) size 108x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 92x13 - RenderText at (0,0) size 92x13 - text run at (0,0) width 92: "I'm Feeling Lucky" - RenderTableCell {TD} at (585,0) size 196x39 [r=0 c=2 rs=1 cs=1] - RenderInline {FONT} at (0,0) size 76x39 - RenderText {#text} at (0,0) size 5x13 - text run at (0,0) width 5: " " - RenderInline {A} at (5,0) size 71x13 [color=#0000CC] - RenderText {#text} at (5,0) size 71x13 - text run at (5,0) width 71: "Advanced Search" - RenderBR {BR} at (75,0) size 1x13 - RenderText {#text} at (0,13) size 5x13 - text run at (0,13) width 5: " " - RenderInline {A} at (5,13) size 47x13 [color=#0000CC] - RenderText {#text} at (5,13) size 47x13 - text run at (5,13) width 47: "Preferences" - RenderBR {BR} at (51,13) size 1x13 - RenderText {#text} at (0,26) size 5x13 - text run at (0,26) width 5: " " - RenderInline {A} at (5,26) size 65x13 [color=#0000CC] - RenderText {#text} at (5,26) size 65x13 - text run at (5,26) width 65: "Language Tools" - RenderBlock (anonymous) at (2,64) size 780x33 - RenderBR {BR} at (390,0) size 0x18 - RenderInline {FONT} at (317,18) size 146x15 - RenderInline {FONT} at (317,18) size 30x15 [color=#FF0000] - RenderText {#text} at (317,18) size 30x15 - text run at (317,18) width 30: "New!" - RenderText {#text} at (346,18) size 4x15 - text run at (346,18) width 4: " " - RenderInline {A} at (349,18) size 111x15 [color=#0000CC] - RenderText {#text} at (349,18) size 111x15 - text run at (349,18) width 111: "Personalize this page" - RenderText {#text} at (459,18) size 4x15 - text run at (459,18) width 4: "." - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,154) size 784x69 - RenderBR {BR} at (392,0) size 0x18 - RenderBR {BR} at (392,18) size 0x18 - RenderBR {BR} at (392,36) size 0x18 - RenderInline {FONT} at (237,54) size 310x15 - RenderInline {A} at (237,54) size 116x15 [color=#0000CC] - RenderText {#text} at (237,54) size 116x15 - text run at (237,54) width 116: "Advertising Programs" - RenderText {#text} at (352,54) size 11x15 - text run at (352,54) width 11: " - " - RenderInline {A} at (362,54) size 100x15 [color=#0000CC] - RenderText {#text} at (362,54) size 100x15 - text run at (362,54) width 100: "Business Solutions" - RenderText {#text} at (461,54) size 12x15 - text run at (461,54) width 12: " - " - RenderInline {A} at (472,54) size 75x15 [color=#0000CC] - RenderText {#text} at (472,54) size 75x15 - text run at (472,54) width 75: "About Google" - RenderBlock {P} at (0,239) size 784x13 - RenderInline {FONT} at (362,0) size 60x13 - RenderText {#text} at (362,0) size 60x13 - text run at (362,0) width 60: "\x{A9}2005 Google" -layer at (207,87) size 386x13 - RenderBlock {DIV} at (3,3) size 386x13 -selection start: position 0 of child 1 {TABLE} of child 4 {DIV} of child 0 {CENTER} of body -selection end: position 1 of child 3 {#text} of child 4 {FONT} of child 4 {DIV} of child 0 {CENTER} of body diff --git a/LayoutTests/platform/mac-ventura/editing/selection/4895428-3-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/4895428-3-expected.txt deleted file mode 100644 index b9c39a1fa0a16..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/4895428-3-expected.txt +++ /dev/null @@ -1,26 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x54 - RenderText {#text} at (0,0) size 768x54 - text run at (0,0) width 768: "We delay focus until mouse up if the mouse down occurs inside a focusable node that is inside an already focused node." - text run at (0,18) width 568: "But we shouldn't delay focus unless the mouse down occurs in an already focused node. " - text run at (567,18) width 195: "The text field below should be" - text run at (0,36) width 58: "focused. " - RenderInline {B} at (57,36) size 661x18 - RenderText {#text} at (57,36) size 661x18 - text run at (57,36) width 661: "To run manually, select everything from 'foo' though 'baz', then mouse down inside the text field." - RenderBlock {DIV} at (0,70) size 784x55 - RenderBlock {DIV} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 22x18 - text run at (0,0) width 22: "foo" - RenderBlock (anonymous) at (0,18) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {DIV} at (0,37) size 784x18 - RenderText {#text} at (0,0) size 23x18 - text run at (0,0) width 23: "baz" -layer at (11,99) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 0 of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 2 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/editing/selection/4975120-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/4975120-expected.txt deleted file mode 100644 index 7a852165400b3..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/4975120-expected.txt +++ /dev/null @@ -1,28 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x54 - RenderText {#text} at (0,0) size 770x54 - text run at (0,0) width 768: "This tests for a bug that caused the parent of an active frame to paint as though it were active when its window becomes" - text run at (0,18) width 31: "key. " - text run at (30,18) width 740: "To run manually, make another window active and then make this window active. Only the subframe should appear" - text run at (0,36) width 43: "active." - RenderBlock (anonymous) at (0,70) size 784x173 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,0) size 1x18 - RenderIFrame {IFRAME} at (0,19) size 304x154 [border: (2px inset #000000)] - layer at (0,0) size 300x150 - RenderView at (0,0) size 300x150 - layer at (0,0) size 300x150 - RenderBlock {HTML} at (0,0) size 300x150 - RenderBody {BODY} at (8,8) size 284x134 [bgcolor=#FFFFE0] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,81) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 17x13 - text run at (0,0) width 17: "foo" -selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 3 {INPUT} of body -selection end: position 3 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 3 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/editing/selection/block-cursor-overtype-mode-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/block-cursor-overtype-mode-expected.txt deleted file mode 100644 index 5beb23a786b03..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/block-cursor-overtype-mode-expected.txt +++ /dev/null @@ -1,156 +0,0 @@ -This test checks that the cursor covers the next character to be overwritten in overtype mode instead of being painted as a caret (1px width bar) - -ABC -ABC -שדן -שדן -שדןABC -שדןABC -Verifying block cursor position and width for each position in 'ABC' in a ltr block -getSelection().collapse(textNode, 0) -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 1) -PASS blockCursorStartPosition[0] < blockCursorStartPosition[1] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 2) -PASS blockCursorStartPosition[1] < blockCursorStartPosition[2] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 3) -PASS blockCursor.width is 0 -PASS internals.absoluteCaretBounds().width is 1 - -Verifying block cursor position and width for each position in 'ABC' in a rtl block -getSelection().collapse(textNode, 0) -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 1) -PASS blockCursorStartPosition[0] < blockCursorStartPosition[1] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 2) -PASS blockCursorStartPosition[1] < blockCursorStartPosition[2] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 3) -PASS blockCursor.width is 0 -PASS internals.absoluteCaretBounds().width is 1 - -Verifying block cursor position and width for each position in 'שדן' in a ltr block -getSelection().collapse(textNode, 0) -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 1) -PASS blockCursorStartPosition[0] > blockCursorStartPosition[1] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 2) -PASS blockCursorStartPosition[1] > blockCursorStartPosition[2] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 3) -PASS blockCursor.width is 0 -PASS internals.absoluteCaretBounds().width is 1 - -Verifying block cursor position and width for each position in 'שדן' in a rtl block -getSelection().collapse(textNode, 0) -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 1) -PASS blockCursorStartPosition[0] > blockCursorStartPosition[1] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 2) -PASS blockCursorStartPosition[1] > blockCursorStartPosition[2] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 3) -PASS blockCursor.width is 0 -PASS internals.absoluteCaretBounds().width is 1 - -Verifying block cursor position and width for each position in 'שדןABC' in a ltr block -getSelection().collapse(textNode, 0) -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 1) -PASS blockCursorStartPosition[0] > blockCursorStartPosition[1] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 2) -PASS blockCursorStartPosition[1] > blockCursorStartPosition[2] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 3) -PASS blockCursorStartPosition[2] < blockCursorStartPosition[3] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 4) -PASS blockCursorStartPosition[3] < blockCursorStartPosition[4] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 5) -PASS blockCursorStartPosition[4] < blockCursorStartPosition[5] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 6) -PASS blockCursor.width is 0 -PASS internals.absoluteCaretBounds().width is 1 - -Verifying block cursor position and width for each position in 'שדןABC' in a rtl block -getSelection().collapse(textNode, 0) -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 1) -PASS blockCursorStartPosition[0] > blockCursorStartPosition[1] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 2) -PASS blockCursorStartPosition[1] > blockCursorStartPosition[2] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 3) -PASS blockCursorStartPosition[2] > blockCursorStartPosition[3] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 4) -PASS blockCursorStartPosition[3] < blockCursorStartPosition[4] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 5) -PASS blockCursorStartPosition[4] < blockCursorStartPosition[5] is true -PASS getSelection().isCollapsed is true -PASS blockCursor.width > 1 is true -PASS internals.absoluteCaretBounds().width is 1 -getSelection().collapse(textNode, 6) -PASS blockCursor.width is 0 -PASS internals.absoluteCaretBounds().width is 1 - -PASS successfullyParsed is true - -TEST COMPLETE - diff --git a/LayoutTests/platform/mac-ventura/editing/selection/caret-in-empty-inline-1-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/caret-in-empty-inline-1-expected.txt deleted file mode 100644 index 67649fab8beb7..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/caret-in-empty-inline-1-expected.txt +++ /dev/null @@ -1,13 +0,0 @@ -Bug 85793: Caret is not rendered in empty inline contenteditable elements - -This test verifies that an empty inline contenteditable element gets a valid caret rect. - - -PASS caretRect.left is 8 -PASS caretRect.top is 160 -PASS caretRect.width is 1 -PASS caretRect.height is 20 -PASS successfullyParsed is true - -TEST COMPLETE - diff --git a/LayoutTests/platform/mac-ventura/editing/selection/caret-in-empty-inline-2-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/caret-in-empty-inline-2-expected.txt deleted file mode 100644 index fdcdc68b84270..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/caret-in-empty-inline-2-expected.txt +++ /dev/null @@ -1,13 +0,0 @@ -Bug 85793: Caret is not rendered in empty inline contenteditable elements - -This test verifies that an empty inline contenteditable element, placed after another inline element, gets a valid caret rect. - -Previous span -PASS caretRect.left is 268 -PASS caretRect.top is 180 -PASS caretRect.width is 1 -PASS caretRect.height is 20 -PASS successfullyParsed is true - -TEST COMPLETE - diff --git a/LayoutTests/platform/mac-ventura/editing/selection/drag-select-1-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/drag-select-1-expected.txt deleted file mode 100644 index 614cc7091f868..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/drag-select-1-expected.txt +++ /dev/null @@ -1,21 +0,0 @@ -ALERT: 0.1724137931034483 -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 221x18 - text run at (0,0) width 221: "This tests for a drag select crasher." - RenderBlock {DIV} at (0,34) size 784x19 - RenderInline {SPAN} at (0,0) size 66x18 - RenderText {#text} at (0,0) size 66x18 - text run at (0,0) width 66: "Start here." - RenderText {#text} at (65,0) size 5x18 - text run at (65,0) width 5: " " - RenderTextControl {INPUT} at (69,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {UL} at (0,69) size 784x0 -layer at (81,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -selection start: position 4 of child 0 {#text} of child 0 {SPAN} of child 2 {DIV} of body -selection end: position 1 of child 1 {#text} of child 2 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/editing/selection/internal-caret-rect-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/internal-caret-rect-expected.txt deleted file mode 100644 index 359bb80be7045..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/internal-caret-rect-expected.txt +++ /dev/null @@ -1,29 +0,0 @@ -Bug 86390: Expose FrameSelection::absoluteCaretBounds via window.internals - -This test demonstrates the usage of window.internals.absoluteCaretBounds() - -abcd -PASS caretRects[0].left is 8 -PASS caretRects[0].top is 160 -PASS caretRects[0].width is 1 -PASS caretRects[0].height is 20 -PASS caretRects[1].left is 28 -PASS caretRects[1].top is 160 -PASS caretRects[1].width is 1 -PASS caretRects[1].height is 20 -PASS caretRects[2].left is 48 -PASS caretRects[2].top is 160 -PASS caretRects[2].width is 1 -PASS caretRects[2].height is 20 -PASS caretRects[3].left is 68 -PASS caretRects[3].top is 160 -PASS caretRects[3].width is 1 -PASS caretRects[3].height is 20 -PASS caretRects[4].left is 88 -PASS caretRects[4].top is 160 -PASS caretRects[4].width is 1 -PASS caretRects[4].height is 20 -PASS successfullyParsed is true - -TEST COMPLETE - diff --git a/LayoutTests/platform/mac-ventura/editing/selection/select-from-textfield-outwards-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/select-from-textfield-outwards-expected.txt deleted file mode 100644 index 210deac9f93ac..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/select-from-textfield-outwards-expected.txt +++ /dev/null @@ -1,52 +0,0 @@ -EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 13 of #text > DIV > #document-fragment to 13 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 13 of #text > DIV > #document-fragment to 13 of #text > DIV > #document-fragment toDOMRange:range from 12 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 12 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment toDOMRange:range from 0 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment toDOMRange:range from 12 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 12 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment toDOMRange:range from 0 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment toDOMRange:range from 12 of #text > DIV > #document-fragment to 17 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE -EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 108x18 - text run at (0,0) width 108: "This is a test for " - RenderInline {I} at (0,0) size 766x36 - RenderInline {A} at (107,0) size 353x18 [color=#0000EE] - RenderText {#text} at (107,0) size 353x18 - text run at (107,0) width 353: "http://bugzilla.opendarwin.org/show_bug.cgi?id=9312" - RenderText {#text} at (0,0) size 766x36 - text run at (459,0) width 5: " " - text run at (463,0) width 303: "REGRESSION: Selection bug in new text fields" - text run at (0,18) width 216: "when selecting past the first letter" - RenderText {#text} at (215,18) size 5x18 - text run at (215,18) width 5: "." - RenderBlock {P} at (0,70) size 784x54 - RenderText {#text} at (0,0) size 771x54 - text run at (0,0) width 761: "Curabitur pretium, quam quis semper malesuada, est libero feugiat libero, vel fringilla orci nibh sed neque. Quisque eu" - text run at (0,18) width 771: "nulla non nisi molestie accumsan. Etiam tellus urna, laoreet ac, laoreet non, suscipit sed, sapien. Phasellus vehicula, sem" - text run at (0,36) width 569: "at posuere vehicula, augue nibh molestie nisl, nec ullamcorper lacus ante vulputate pede." - RenderBlock (anonymous) at (0,140) size 784x92 - RenderTextControl {INPUT} at (20,20) size 320x52 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,248) size 784x72 - RenderText {#text} at (0,0) size 772x72 - text run at (0,0) width 772: "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris viverra augue vitae purus." - text run at (0,18) width 728: "Morbi sed sem. Donec dui nisi, ultrices non, pretium quis, hendrerit non, est. Donec tellus. Donec eget dui id eros" - text run at (0,36) width 767: "pharetra rutrum. Suspendisse sodales lectus sit amet nulla. Morbi tortor arcu, convallis blandit, elementum eu, aliquet a," - text run at (0,54) width 39: "tellus." -layer at (8,60) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,52) size 784x2 [color=#808080] [border: (1px inset #808080)] -layer at (40,180) size 296x28 - RenderBlock {DIV} at (12,12) size 296x28 - RenderText {#text} at (0,0) size 192x28 - text run at (0,0) width 192: "Lorem ipsum dolor" -selection start: position 12 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 7 {INPUT} of body -selection end: position 17 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 7 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/editing/selection/simple-line-layout-caret-is-gone-expected.txt b/LayoutTests/platform/mac-ventura/editing/selection/simple-line-layout-caret-is-gone-expected.txt deleted file mode 100644 index ca48f3d005429..0000000000000 --- a/LayoutTests/platform/mac-ventura/editing/selection/simple-line-layout-caret-is-gone-expected.txt +++ /dev/null @@ -1 +0,0 @@ -36 0 1 18 diff --git a/LayoutTests/platform/mac-ventura/fast/block/basic/minheight-expected.txt b/LayoutTests/platform/mac-ventura/fast/block/basic/minheight-expected.txt deleted file mode 100644 index 67995f9fb2e36..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/block/basic/minheight-expected.txt +++ /dev/null @@ -1,26 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock (relative positioned) {DIV} at (0,0) size 800x600 - RenderBlock {DIV} at (0,0) size 800x220 [bgcolor=#6CAAD9] - RenderBlock {H1} at (10,10) size 780x30 - RenderText {#text} at (0,1) size 53x15 - text run at (0,1) width 53: "Content" - RenderBlock {P} at (10,40) size 780x30 - RenderText {#text} at (0,1) size 473x15 - text run at (0,1) width 473: "Please resize the browser window to see how your 100% CSS footer behaves." - RenderBlock {P} at (10,70) size 780x102 - RenderText {#text} at (0,1) size 779x87 - text run at (0,1) width 762: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut nonummy vestibulum arcu. Nulla eros eros, mattis" - text run at (0,19) width 771: "et, dictum quis, convallis vel, mauris. Ut sed mauris vel metus pretium pretium. Curabitur tristique sem id justo. Nunc sit amet" - text run at (0,37) width 779: "felis. Duis luctus pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in, justo. Pellentesque enim lacus, egestas ut," - text run at (0,55) width 761: "elementum eu, molestie vel, urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo. Vestibulum rhoncus lacinia" - text run at (0,73) width 436: "pede. Aliquam lectus velit, auctor a, fermentum a, accumsan et, neque." -layer at (0,562) size 620x38 - RenderBlock (positioned) {DIV} at (0,562) size 620x38 [bgcolor=#0066B2] - RenderBlock {H1} at (10,10) size 600x18 [color=#FFFFFF] - RenderText {#text} at (0,1) size 44x15 - text run at (0,1) width 44: "Footer" diff --git a/LayoutTests/platform/mac-ventura/fast/block/margin-collapse/103-expected.txt b/LayoutTests/platform/mac-ventura/fast/block/margin-collapse/103-expected.txt deleted file mode 100644 index e3c5b130c42c5..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/block/margin-collapse/103-expected.txt +++ /dev/null @@ -1,183 +0,0 @@ -layer at (0,0) size 785x1707 - RenderView at (0,0) size 785x600 -layer at (0,0) size 785x1707 - RenderBlock {HTML} at (0,0) size 785x1707 - RenderBody {BODY} at (8,20) size 769x1667 [bgcolor=#A6A972] - RenderBlock {DIV} at (83,0) size 603x1667 [bgcolor=#FDFDE9] [border: (1px solid #000000)] - RenderBlock {DIV} at (1,31) size 600x70 - RenderBlock {DIV} at (1,114) size 600x1481 - RenderBlock {P} at (20,0) size 560x80 [color=#333333] - RenderText {#text} at (0,2) size 537x36 - text run at (0,2) width 537: "We are trying to understand how UVic students perform Shakespeare related research for" - text run at (0,22) width 272: "classes as well as for their own interest. The " - RenderInline {A} at (271,22) size 179x16 - RenderText {#text} at (271,22) size 179x16 - text run at (271,22) width 179: "Internet Shakespeare Editions" - RenderText {#text} at (0,22) size 553x56 - text run at (449,22) width 61: " are being" - text run at (0,42) width 282: "developed for students as well as Shakespeare " - text run at (281,42) width 272: "scholars world wide to better understand the" - text run at (0,62) width 249: "man, his plays and our interpretations of " - text run at (248,62) width 37: "them." - RenderBlock {P} at (20,93) size 560x21 [color=#333333] - RenderText {#text} at (0,2) size 475x16 - text run at (0,2) width 475: "Please take the time to carefully review and complete the following questions." - RenderBlock {FORM} at (20,138) size 560x1310 - RenderBlock {H2} at (0,0) size 560x16 [color=#333333] - RenderText {#text} at (0,0) size 202x16 - text run at (0,0) width 202: "PERSONAL INFORMATION" - RenderBlock (floating) {SPAN} at (0,26) size 325x20 [color=#333333] - RenderText {#text} at (0,2) size 70x16 - text run at (0,2) width 70: "Your Name*" - RenderTextControl {INPUT} at (325,26) size 186x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock (floating) {SPAN} at (0,46) size 325x20 [color=#333333] - RenderText {#text} at (0,2) size 124x16 - text run at (0,2) width 124: "Your e-mail address*" - RenderTextControl {INPUT} at (325,45) size 186x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock (floating) {SPAN} at (0,66) size 325x20 [color=#333333] - RenderText {#text} at (0,2) size 131x16 - text run at (0,2) width 131: "Your degree program*" - RenderMenuList {SELECT} at (325,64) size 180x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 180x18 - RenderText at (8,2) size 87x13 - text run at (8,2) width 87: "Program options" - RenderBlock (floating) {SPAN} at (0,86) size 325x20 [color=#333333] - RenderText {#text} at (0,2) size 115x16 - text run at (0,2) width 115: "Your year of study*" - RenderMenuList {SELECT} at (325,82) size 180x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 180x18 - RenderText at (8,2) size 122x13 - text run at (8,2) width 122: "Years you've been here" - RenderBlock (floating) {SPAN} at (0,106) size 325x20 [color=#333333] - RenderText {#text} at (0,2) size 157x16 - text run at (0,2) width 157: "Shakespeare classes taken" - RenderMenuList {SELECT} at (325,100) size 180x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 180x18 - RenderText at (8,2) size 74x13 - text run at (8,2) width 74: "Number taken" - RenderBlock {P} at (0,131) size 560x21 [color=#333333] - RenderText {#text} at (0,2) size 161x16 - text run at (0,2) width 161: "* indicates a required field" - RenderBlock {H2} at (0,176) size 560x17 [color=#333333] - RenderText {#text} at (0,0) size 298x16 - text run at (0,0) width 298: "SHAKESPEARE RESEARCH QUESTIONS" - RenderBlock (floating) {SPAN} at (0,202) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 286x36 - text run at (0,2) width 286: "What percentage of your research time is spent" - text run at (0,22) width 42: "online?" - RenderMenuList {SELECT} at (325,202) size 180x19 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 180x18 - RenderText at (8,2) size 106x13 - text run at (8,2) width 106: "Percentages of time" - RenderBlock (floating) {SPAN} at (0,222) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 308x36 - text run at (0,2) width 308: "What is holding you back from doing more research" - text run at (0,22) width 42: "online?" - RenderMenuList {SELECT} at (325,220) size 180x19 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 180x18 - RenderText at (8,2) size 45x13 - text run at (8,2) width 45: "Reasons" - RenderBlock (floating) {SPAN} at (0,242) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 228x16 - text run at (0,2) width 228: "Your research is primarily focused on:" - RenderBlock {SPAN} at (325,238) size 180x21 [color=#333333] - RenderBlock {INPUT} at (2,5) size 12x12 [color=#000000] - RenderText {#text} at (16,2) size 33x16 - text run at (16,2) width 33: "Texts" - RenderBlock {SPAN} at (325,258) size 180x21 [color=#333333] - RenderBlock {INPUT} at (2,5) size 12x12 [color=#000000] - RenderText {#text} at (16,2) size 137x16 - text run at (16,2) width 137: "Performance materials" - RenderBlock {SPAN} at (325,278) size 180x21 [color=#333333] - RenderBlock {INPUT} at (2,5) size 12x12 [color=#000000] - RenderText {#text} at (16,2) size 22x16 - text run at (16,2) width 22: "n/a" - RenderBlock {H2} at (0,323) size 560x17 [color=#333333] - RenderText {#text} at (0,0) size 373x16 - text run at (0,0) width 373: "INTERNET SHAKESPEARE EDITIONS QUESTIONS" - RenderBlock (floating) {SPAN} at (0,349) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 312x16 - text run at (0,2) width 312: "Have you used UVic's Internet Shakespeare Editions?" - RenderBlock {SPAN} at (325,349) size 180x21 [color=#333333] - RenderText {#text} at (0,2) size 21x16 - text run at (0,2) width 21: "Yes" - RenderBlock {INPUT} at (22,5) size 13x12 [color=#000000] - RenderText {#text} at (36,2) size 20x16 - text run at (36,2) width 5: " " - text run at (40,2) width 16: "No" - RenderBlock {INPUT} at (57,5) size 13x12 [color=#000000] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,382) size 560x21 [color=#333333] - RenderText {#text} at (0,2) size 388x16 - text run at (0,2) width 388: "-- If you answered no to this question, skip to the next section --" - RenderBlock (floating) {SPAN} at (0,415) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 282x16 - text run at (0,2) width 282: "Which area of the ISE did you find most useful?" - RenderMenuList {SELECT} at (325,415) size 180x19 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 180x18 - RenderText at (8,2) size 100x13 - text run at (8,2) width 100: "Sections of the ISE" - RenderBlock (floating) {SPAN} at (0,435) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 257x16 - text run at (0,2) width 257: "How did you find the navigation of the ISE?" - RenderMenuList {SELECT} at (325,433) size 180x19 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 180x18 - RenderText at (8,2) size 91x13 - text run at (8,2) width 91: "Level of difficulty" - RenderBlock (floating) {SPAN} at (0,455) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 214x16 - text run at (0,2) width 214: "Please describe your use of the ISE." - RenderBlock {H2} at (0,607) size 560x17 [color=#333333] - RenderText {#text} at (0,0) size 290x16 - text run at (0,0) width 290: "TOOLS IN DEVELOPMENT QUESTIONS" - RenderBlock {P} at (0,637) size 560x61 [color=#333333] - RenderText {#text} at (0,2) size 555x56 - text run at (0,2) width 463: "We are in the process of both making new material available and developing " - text run at (462,2) width 75: "new tools to" - text run at (0,22) width 393: "view and extrapolate information from Shakespeare's works. The " - text run at (392,22) width 163: "following images are visual" - text run at (0,42) width 353: "representations of some of the ideas being thrown around." - RenderBlock {P} at (0,710) size 560x21 [color=#333333] - RenderText {#text} at (0,2) size 347x16 - text run at (0,2) width 347: "Please review them carefully and provide feedback below" - RenderBlock (floating) {SPAN} at (0,743) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 149x16 - text run at (0,2) width 149: "Your comments on Fig. 1" - RenderBlock (floating) {SPAN} at (0,874) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 149x16 - text run at (0,2) width 149: "Your comments on Fig. 2" - RenderBlock (floating) {SPAN} at (0,1005) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 149x16 - text run at (0,2) width 149: "Your comments on Fig. 3" - RenderBlock {H2} at (0,1156) size 560x17 [color=#333333] - RenderText {#text} at (0,0) size 143x16 - text run at (0,0) width 143: "OTHER FEEDBACK" - RenderBlock (floating) {SPAN} at (0,1182) size 325x21 [color=#333333] - RenderText {#text} at (0,2) size 228x16 - text run at (0,2) width 228: "Please enter any other thoughts here." - RenderBlock {P} at (20,1460) size 560x21 [color=#333333] - RenderText {#text} at (0,2) size 237x16 - text run at (0,2) width 237: "Thank you for your time filling this out." - RenderBlock {DIV} at (1,1614) size 600x52 [border: (1px dashed #A6A972) none] - RenderBlock {SPAN} at (0,16) size 600x20 [color=#333333] - RenderText {#text} at (245,2) size 110x16 - text run at (245,2) width 110: "\x{A9}2003 Kevin Davis" -layer at (441,302) size 180x13 - RenderBlock {DIV} at (3,3) size 180x13 -layer at (441,321) size 180x13 - RenderBlock {DIV} at (3,3) size 180x13 -layer at (113,750) size 506x106 clip at (114,751) size 504x104 - RenderTextControl {TEXTAREA} at (0,476) size 506x107 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 500x13 -layer at (113,1037) size 506x106 clip at (114,1038) size 504x104 - RenderTextControl {TEXTAREA} at (0,763) size 506x107 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 500x13 -layer at (113,1168) size 506x106 clip at (114,1169) size 504x104 - RenderTextControl {TEXTAREA} at (0,894) size 506x107 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 500x13 -layer at (113,1299) size 506x106 clip at (114,1300) size 504x104 - RenderTextControl {TEXTAREA} at (0,1025) size 506x107 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 500x13 -layer at (113,1476) size 506x106 clip at (114,1477) size 504x104 - RenderTextControl {TEXTAREA} at (0,1202) size 506x107 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 500x13 diff --git a/LayoutTests/platform/mac-ventura/fast/clip/outline-overflowClip-expected.txt b/LayoutTests/platform/mac-ventura/fast/clip/outline-overflowClip-expected.txt deleted file mode 100644 index 3bcf609a13478..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/clip/outline-overflowClip-expected.txt +++ /dev/null @@ -1,20 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 780x36 - text run at (0,0) width 215: "This tests clipping of the outline. " - text run at (214,0) width 293: "It should not be clipped by the overflow rect. " - text run at (506,0) width 274: "The inner div has a green outline and a red" - text run at (0,18) width 45: "border." - RenderText {#text} at (0,0) size 0x0 -layer at (8,44) size 304x204 backgroundClip at (83,44) size 229x204 clip at (83,44) size 229x204 - RenderBlock (positioned) {DIV} at (8,44) size 304x204 [border: (2px solid #0000FF)] - RenderText {#text} at (2,2) size 102x18 - text run at (2,2) width 102: "text in outer div" - RenderText {#text} at (0,0) size 0x0 -layer at (60,64) size 108x24 backgroundClip at (83,61) size 88x30 clip at (83,67) size 82x18 scrollWidth 107 - RenderBlock (positioned) {DIV} at (52,20) size 108x24 [bgcolor=#EEEEEE] [border: (3px solid #FF0000)] - RenderText {#text} at (3,3) size 106x18 - text run at (3,3) width 106: "text in inner div " diff --git a/LayoutTests/platform/mac-ventura/fast/css/002-expected.txt b/LayoutTests/platform/mac-ventura/fast/css/002-expected.txt deleted file mode 100644 index 4a70dfc3e5cd4..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/css/002-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x560 - RenderBlock (anonymous) at (0,0) size 784x78 - RenderText {#text} at (0,0) size 745x78 - text run at (0,0) width 667: "These two lines should both be Verdana. " - text run at (666,0) width 79: "They" - text run at (0,39) width 313: "should be identical." - RenderBlock {P} at (0,110) size 784x78 - RenderText {#text} at (0,0) size 745x78 - text run at (0,0) width 667: "These two lines should both be Verdana. " - text run at (666,0) width 79: "They" - text run at (0,39) width 313: "should be identical." diff --git a/LayoutTests/platform/mac-ventura/fast/css/focus-ring-exists-for-search-field-expected.txt b/LayoutTests/platform/mac-ventura/fast/css/focus-ring-exists-for-search-field-expected.txt deleted file mode 100644 index 813df4d64227b..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/css/focus-ring-exists-for-search-field-expected.txt +++ /dev/null @@ -1,19 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 757x36 - text run at (0,0) width 757: "Assuming the port-specific theme draws focus rings, this test can be used to ensure that a focus ring is drawn around a" - text run at (0,18) width 78: "search field." - RenderBlock (anonymous) at (0,52) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 -layer at (19,63) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -caret: position 0 of child 0 {DIV} of child 1 {DIV} of child 0 {DIV} of {#document-fragment} of child 3 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/css/line-height-expected.txt b/LayoutTests/platform/mac-ventura/fast/css/line-height-expected.txt deleted file mode 100644 index d36d09ddf7134..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/css/line-height-expected.txt +++ /dev/null @@ -1,24 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DIV} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 54x18 - text run at (0,0) width 54: "Test for " - RenderInline {A} at (53,0) size 121x18 [color=#0000EE] - RenderText {#text} at (53,0) size 121x18 - text run at (53,0) width 121: "Bugzilla Bug 9934" - RenderText {#text} at (173,0) size 462x18 - text run at (173,0) width 462: " Selecting text in text field with {line-height:100%} causes it to bounce." - RenderBlock {DIV} at (0,18) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {DIV} at (0,37) size 784x36 - RenderText {#text} at (0,0) size 749x36 - text run at (0,0) width 585: "Select the text in the text field using horizontal mouse movements, then drag up and down. " - text run at (584,0) width 165: "The text should not move" - text run at (0,18) width 64: "vertically." -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 68x13 - text run at (0,0) width 68: "Lorem Ipsum" diff --git a/LayoutTests/platform/mac-ventura/fast/css/rtl-ordering-expected.txt b/LayoutTests/platform/mac-ventura/fast/css/rtl-ordering-expected.txt deleted file mode 100644 index f9011ec3e66d9..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/css/rtl-ordering-expected.txt +++ /dev/null @@ -1,46 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 218x18 - text run at (0,0) width 218: "This tests for a regression against " - RenderInline {I} at (0,0) size 722x36 - RenderInline {A} at (217,0) size 354x18 [color=#0000EE] - RenderText {#text} at (217,0) size 354x18 - text run at (217,0) width 354: "http://bugzilla.opendarwin.org/show_bug.cgi?id=6334" - RenderText {#text} at (0,0) size 722x36 - text run at (570,0) width 152: " REGRESSION: text is reversed on \"visual Hebrew\" pages" - RenderText {#text} at (373,18) size 5x18 - text run at (373,18) width 5: "." - RenderBlock {P} at (0,70) size 784x19 - RenderText {#text} at (0,1) size 310x18 - text run at (0,1) width 310: "The text on both buttons should like this: \x{5E8}\x{5D5}\x{5EA}\x{5E4}\x{5DB}" - RenderBlock (anonymous) at (0,105) size 784x36 - RenderButton {BUTTON} at (0,0) size 47x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 31x13 - RenderText {#text} at (0,0) size 31x13 - text run at (0,0) width 31: "\x{5E8}\x{5D5}\x{5EA}\x{5E4}\x{5DB}" - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (46,-1) size 1x18 - RenderButton {INPUT} at (0,18) size 47x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 31x13 - RenderText at (0,0) size 31x13 - text run at (0,0) width 31 RTL: "\x{5DB}\x{5E4}\x{5EA}\x{5D5}\x{5E8}" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,167) size 784x18 - RenderText {#text} at (0,0) size 255x18 - text run at (0,0) width 255: "The following lines should be identical:" - RenderBlock {P} at (0,201) size 784x19 - RenderText {#text} at (0,1) size 81x18 - text run at (0,1) width 16: "21" - text run at (16,1) width 65 RTL: "\x{5D4}\x{5DE}\x{5D0}\x{5D4} \x{5D4}-" - RenderBlock {P} at (0,236) size 784x19 - RenderText {#text} at (0,1) size 81x18 - text run at (0,1) width 81: "21-\x{5D4} \x{5D4}\x{5D0}\x{5DE}\x{5D4}" -layer at (8,60) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,52) size 784x2 [color=#808080] [border: (1px inset #808080)] -layer at (8,157) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,149) size 784x2 [color=#808080] [border: (1px inset #808080)] diff --git a/LayoutTests/platform/mac-ventura/fast/css/text-overflow-input-expected.txt b/LayoutTests/platform/mac-ventura/fast/css/text-overflow-input-expected.txt deleted file mode 100644 index f831065982a5c..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/css/text-overflow-input-expected.txt +++ /dev/null @@ -1,360 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x266 - RenderBlock {HTML} at (0,0) size 800x266 - RenderBody {BODY} at (8,16) size 784x234 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 314x18 - text run at (0,0) width 314: "This test is a basic check for using text-overflow." - RenderBlock {P} at (0,34) size 784x56 - RenderText {#text} at (0,0) size 489x18 - text run at (0,0) width 489: "Apply \"text-overflow:clip\" to inputs. The following input should be clipped:" - RenderBR {BR} at (488,0) size 1x18 - RenderTextControl {INPUT} at (0,18) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,18) size 5x18 - text run at (146,18) width 5: " " - RenderTextControl {INPUT} at (150,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (297,18) size 5x18 - text run at (297,18) width 5: " " - RenderTextControl {INPUT} at (301,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (448,18) size 5x18 - text run at (448,18) width 5: " " - RenderTextControl {INPUT} at (452,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (599,18) size 5x18 - text run at (599,18) width 5: " " - RenderTextControl {INPUT} at (603,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderBR {BR} at (750,18) size 1x18 - RenderTextControl {INPUT} at (0,37) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (145,37) size 5x18 - text run at (145,37) width 5: " " - RenderTextControl {INPUT} at (149,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (131,0) size 9x19 - RenderBlock {DIV} at (19,3) size 113x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderText {#text} at (295,37) size 5x18 - text run at (295,37) width 5: " " - RenderTextControl {INPUT} at (299,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (445,37) size 5x18 - text run at (445,37) width 5: " " - RenderTextControl {INPUT} at (449,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (131,0) size 9x19 - RenderBlock {DIV} at (19,3) size 113x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderText {#text} at (595,37) size 5x18 - text run at (595,37) width 5: " " - RenderTextControl {INPUT} at (599,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 140x13 - RenderBlock {DIV} at (0,0) size 140x13 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,106) size 784x56 - RenderText {#text} at (0,0) size 546x18 - text run at (0,0) width 546: "Apply \"text-overflow:ellipsis\" to inputs. The following input should show an ellipsis:" - RenderBR {BR} at (545,0) size 1x18 - RenderTextControl {INPUT} at (0,18) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,18) size 5x18 - text run at (146,18) width 5: " " - RenderTextControl {INPUT} at (150,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (297,18) size 5x18 - text run at (297,18) width 5: " " - RenderTextControl {INPUT} at (301,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (448,18) size 5x18 - text run at (448,18) width 5: " " - RenderTextControl {INPUT} at (452,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (599,18) size 5x18 - text run at (599,18) width 5: " " - RenderTextControl {INPUT} at (603,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderBR {BR} at (750,18) size 1x18 - RenderTextControl {INPUT} at (0,37) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (145,37) size 5x18 - text run at (145,37) width 5: " " - RenderTextControl {INPUT} at (149,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (131,0) size 9x19 - RenderBlock {DIV} at (19,3) size 113x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderText {#text} at (295,37) size 5x18 - text run at (295,37) width 5: " " - RenderTextControl {INPUT} at (299,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (445,37) size 5x18 - text run at (445,37) width 5: " " - RenderTextControl {INPUT} at (449,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (131,0) size 9x19 - RenderBlock {DIV} at (19,3) size 113x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderText {#text} at (595,37) size 5x18 - text run at (595,37) width 5: " " - RenderTextControl {INPUT} at (599,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 140x13 - RenderBlock {DIV} at (0,0) size 140x13 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,178) size 784x56 - RenderText {#text} at (0,0) size 237x18 - text run at (0,0) width 237: "Dynamic style change text-overflow:" - RenderBR {BR} at (236,0) size 1x18 - RenderText {#text} at (0,18) size 247x18 - text run at (0,18) width 247: "Clip to ellipsis (should show ellipsis): " - RenderTextControl {INPUT} at (246,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (393,18) size 5x18 - text run at (393,18) width 5: " " - RenderTextControl {INPUT} at (397,18) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (543,18) size 1x18 - RenderText {#text} at (0,37) size 270x18 - text run at (0,37) width 270: "Ellipsis to clip (should not show ellipsis): " - RenderTextControl {INPUT} at (269,37) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (416,37) size 5x18 - text run at (416,37) width 5: " " - RenderTextControl {INPUT} at (420,37) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (567,37) size 1x18 -layer at (11,71) size 141x13 scrollWidth 288 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (11,71) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (170,71) size 114x13 scrollWidth 288 - RenderBlock {DIV} at (11,3) size 114x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (170,71) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (313,71) size 141x13 scrollWidth 289 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (472,71) size 114x13 scrollWidth 289 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (615,71) size 141x13 backgroundClip at (615,71) size 140x13 clip at (615,71) size 140x13 scrollWidth 386 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 385x13 - text run at (0,0) width 385: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}" -layer at (11,90) size 140x13 scrollX 148 scrollWidth 288 - RenderBlock {DIV} at (3,3) size 140x13 [color=#A9A9A9] - RenderText {#text} at (-148,0) size 288x13 - text run at (-147,0) width 32: "Lorem" - text run at (-115,0) width 3: " " - text run at (-112,0) width 32: "ipsum" - text run at (-80,0) width 3: " " - text run at (-77,0) width 27: "dolor" - text run at (-50,0) width 3: " " - text run at (-47,0) width 13: "sit" - text run at (-34,0) width 3: " " - text run at (-31,0) width 30: "amet," - text run at (-1,0) width 3: " " - text run at (1,0) width 64: "consectetur" - text run at (64,0) width 4: " " - text run at (67,0) width 54: "adipiscing" - text run at (120,0) width 4: " " - text run at (123,0) width 17: "elit" -layer at (11,90) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (180,90) size 113x13 scrollX 175 scrollWidth 288 - RenderBlock {DIV} at (22,3) size 113x13 [color=#A9A9A9] - RenderText {#text} at (-175,0) size 288x13 - text run at (-174,0) width 32: "Lorem" - text run at (-142,0) width 3: " " - text run at (-139,0) width 32: "ipsum" - text run at (-107,0) width 3: " " - text run at (-104,0) width 27: "dolor" - text run at (-77,0) width 3: " " - text run at (-74,0) width 13: "sit" - text run at (-61,0) width 3: " " - text run at (-58,0) width 30: "amet," - text run at (-28,0) width 3: " " - text run at (-25,0) width 63: "consectetur" - text run at (37,0) width 4: " " - text run at (40,0) width 54: "adipiscing" - text run at (93,0) width 4: " " - text run at (96,0) width 17: "elit" -layer at (180,90) size 113x13 - RenderBlock {DIV} at (0,0) size 113x13 -layer at (311,90) size 140x13 scrollX 148 scrollWidth 288 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (-148,0) size 288x13 - text run at (-147,0) width 32: "Lorem" - text run at (-115,0) width 3: " " - text run at (-112,0) width 32: "ipsum" - text run at (-80,0) width 3: " " - text run at (-77,0) width 27: "dolor" - text run at (-50,0) width 3: " " - text run at (-47,0) width 13: "sit" - text run at (-34,0) width 3: " " - text run at (-31,0) width 30: "amet," - text run at (-1,0) width 3: " " - text run at (1,0) width 64: "consectetur" - text run at (64,0) width 4: " " - text run at (67,0) width 54: "adipiscing" - text run at (120,0) width 4: " " - text run at (123,0) width 17: "elit" -layer at (480,90) size 113x13 scrollX 175 scrollWidth 288 - RenderBlock {DIV} at (0,0) size 113x13 - RenderText {#text} at (-175,0) size 288x13 - text run at (-174,0) width 32: "Lorem" - text run at (-142,0) width 3: " " - text run at (-139,0) width 32: "ipsum" - text run at (-107,0) width 3: " " - text run at (-104,0) width 27: "dolor" - text run at (-77,0) width 3: " " - text run at (-74,0) width 13: "sit" - text run at (-61,0) width 3: " " - text run at (-58,0) width 30: "amet," - text run at (-28,0) width 3: " " - text run at (-25,0) width 63: "consectetur" - text run at (37,0) width 4: " " - text run at (40,0) width 54: "adipiscing" - text run at (93,0) width 4: " " - text run at (96,0) width 17: "elit" -layer at (611,90) size 140x13 backgroundClip at (611,90) size 139x13 clip at (611,90) size 139x13 scrollX 245 scrollWidth 385 - RenderBlock {DIV} at (0,0) size 140x13 - RenderText {#text} at (-245,0) size 385x13 - text run at (-244,0) width 384: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}" -layer at (11,143) size 141x13 scrollWidth 288 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (11,143) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (170,143) size 114x13 scrollWidth 288 - RenderBlock {DIV} at (11,3) size 114x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (170,143) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (313,143) size 141x13 scrollWidth 289 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (472,143) size 114x13 scrollWidth 289 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (615,143) size 141x13 backgroundClip at (615,143) size 140x13 clip at (615,143) size 140x13 scrollWidth 386 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 385x13 - text run at (0,0) width 385: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}" -layer at (11,162) size 140x13 scrollX 148 scrollWidth 288 - RenderBlock {DIV} at (3,3) size 140x13 [color=#A9A9A9] - RenderText {#text} at (-148,0) size 288x13 - text run at (-147,0) width 32: "Lorem" - text run at (-115,0) width 3: " " - text run at (-112,0) width 32: "ipsum" - text run at (-80,0) width 3: " " - text run at (-77,0) width 27: "dolor" - text run at (-50,0) width 3: " " - text run at (-47,0) width 13: "sit" - text run at (-34,0) width 3: " " - text run at (-31,0) width 30: "amet," - text run at (-1,0) width 3: " " - text run at (1,0) width 64: "consectetur" - text run at (64,0) width 4: " " - text run at (67,0) width 54: "adipiscing" - text run at (120,0) width 4: " " - text run at (123,0) width 17: "elit" -layer at (11,162) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (180,162) size 113x13 scrollX 175 scrollWidth 288 - RenderBlock {DIV} at (22,3) size 113x13 [color=#A9A9A9] - RenderText {#text} at (-175,0) size 288x13 - text run at (-174,0) width 32: "Lorem" - text run at (-142,0) width 3: " " - text run at (-139,0) width 32: "ipsum" - text run at (-107,0) width 3: " " - text run at (-104,0) width 27: "dolor" - text run at (-77,0) width 3: " " - text run at (-74,0) width 13: "sit" - text run at (-61,0) width 3: " " - text run at (-58,0) width 30: "amet," - text run at (-28,0) width 3: " " - text run at (-25,0) width 63: "consectetur" - text run at (37,0) width 4: " " - text run at (40,0) width 54: "adipiscing" - text run at (93,0) width 4: " " - text run at (96,0) width 17: "elit" -layer at (180,162) size 113x13 - RenderBlock {DIV} at (0,0) size 113x13 -layer at (311,162) size 140x13 scrollX 148 scrollWidth 288 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (-148,0) size 288x13 - text run at (-147,0) width 32: "Lorem" - text run at (-115,0) width 3: " " - text run at (-112,0) width 32: "ipsum" - text run at (-80,0) width 3: " " - text run at (-77,0) width 27: "dolor" - text run at (-50,0) width 3: " " - text run at (-47,0) width 13: "sit" - text run at (-34,0) width 3: " " - text run at (-31,0) width 30: "amet," - text run at (-1,0) width 3: " " - text run at (1,0) width 64: "consectetur" - text run at (64,0) width 4: " " - text run at (67,0) width 54: "adipiscing" - text run at (120,0) width 4: " " - text run at (123,0) width 17: "elit" -layer at (480,162) size 113x13 scrollX 175 scrollWidth 288 - RenderBlock {DIV} at (0,0) size 113x13 - RenderText {#text} at (-175,0) size 288x13 - text run at (-174,0) width 32: "Lorem" - text run at (-142,0) width 3: " " - text run at (-139,0) width 32: "ipsum" - text run at (-107,0) width 3: " " - text run at (-104,0) width 27: "dolor" - text run at (-77,0) width 3: " " - text run at (-74,0) width 13: "sit" - text run at (-61,0) width 3: " " - text run at (-58,0) width 30: "amet," - text run at (-28,0) width 3: " " - text run at (-25,0) width 63: "consectetur" - text run at (37,0) width 4: " " - text run at (40,0) width 54: "adipiscing" - text run at (93,0) width 4: " " - text run at (96,0) width 17: "elit" -layer at (611,162) size 140x13 backgroundClip at (611,162) size 139x13 clip at (611,162) size 139x13 scrollX 245 scrollWidth 385 - RenderBlock {DIV} at (0,0) size 140x13 - RenderText {#text} at (-245,0) size 385x13 - text run at (-244,0) width 384: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}" -layer at (257,215) size 141x13 scrollWidth 288 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (257,215) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (408,215) size 141x13 scrollWidth 289 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (281,234) size 141x13 scrollWidth 288 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" -layer at (281,234) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (432,234) size 141x13 scrollWidth 289 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 288x13 - text run at (0,0) width 288: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" diff --git a/LayoutTests/platform/mac-ventura/fast/events/context-no-deselect-expected.txt b/LayoutTests/platform/mac-ventura/fast/events/context-no-deselect-expected.txt deleted file mode 100644 index 67fedeb5af733..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/events/context-no-deselect-expected.txt +++ /dev/null @@ -1,14 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 93x13 - text run at (0,0) width 93: "some sample text" -selection start: position 5 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of body -selection end: position 15 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt deleted file mode 100644 index 57bebbe5073a3..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt +++ /dev/null @@ -1,18 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x95 - RenderBlock {HTML} at (0,0) size 800x95 - RenderBody {BODY} at (8,16) size 784x71 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 780x36 - text run at (0,0) width 780: "This tests that that an autofilled and viewable Strong Password decorated text field reverts to its original appearance when" - text run at (0,18) width 340: "the form is reset. It can only be tested in the test tool." - RenderBlock {FORM} at (0,52) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 0x0 -layer at (11,71) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 63x13 - text run at (0,0) width 63: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt deleted file mode 100644 index 2d644ba2495dc..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt +++ /dev/null @@ -1,41 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 isolatesBlending - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x584 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 503x18 - text run at (0,0) width 503: "This tests that the AutoFill button renders. It can only be tested in the test tool." - RenderBlock {DIV} at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,3) size 114x13 - RenderText {#text} at (146,0) size 5x18 - text run at (146,0) width 5: " " - RenderTextControl {INPUT} at (150,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,3) size 114x13 - RenderText {#text} at (297,0) size 5x18 - text run at (297,0) width 5: " " - RenderTextControl {INPUT} at (301,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,3) size 114x13 - RenderTextControl {INPUT} at (448,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,3) size 114x13 -layer at (11,45) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (162,45) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (313,45) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (460,45) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (127,40) size 24x24 blendMode: luminosity - RenderBlock {DIV} at (115,-3) size 25x25 -layer at (278,40) size 24x24 blendMode: luminosity - RenderBlock {DIV} at (115,-3) size 25x25 -layer at (429,40) size 24x24 blendMode: luminosity - RenderBlock {DIV} at (115,-3) size 25x25 -layer at (576,40) size 24x24 blendMode: luminosity - RenderBlock {DIV} at (115,-3) size 25x25 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt deleted file mode 100644 index 673840c55b792..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt +++ /dev/null @@ -1,57 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x96 - RenderBlock {HTML} at (0,0) size 800x96 - RenderBody {BODY} at (8,16) size 784x72 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 598x18 - text run at (0,0) width 598: "This tests that the Address Book AutoFill button renders. It can only be tested in the test tool." - RenderBlock {DIV} at (0,34) size 784x38 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (146,0) size 5x18 - text run at (146,0) width 5: " " - RenderTextControl {INPUT} at (150,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (297,0) size 5x18 - text run at (297,0) width 5: " " - RenderTextControl {INPUT} at (301,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (448,0) size 5x18 - text run at (448,0) width 5: " " - RenderTextControl {INPUT} at (452,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderTextControl {INPUT} at (599,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderTextControl {INPUT} at (0,19) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (11,53) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (162,53) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (313,53) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (464,53) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (611,53) size 114x13 backgroundClip at (611,53) size 113x13 clip at (611,53) size 113x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (11,72) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (128,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] -layer at (279,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] -layer at (430,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] -layer at (581,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] -layer at (727,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] -layer at (128,73) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] diff --git a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt deleted file mode 100644 index 88b7335e92244..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt +++ /dev/null @@ -1,44 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x77 - RenderBlock {HTML} at (0,0) size 800x77 - RenderBody {BODY} at (8,16) size 784x53 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 582x18 - text run at (0,0) width 196: "This tests that the Credit Card " - text run at (195,0) width 387: "AutoFill button renders. It can only be tested in the test tool." - RenderBlock {DIV} at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (146,0) size 5x18 - text run at (146,0) width 5: " " - RenderTextControl {INPUT} at (150,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (297,0) size 5x18 - text run at (297,0) width 5: " " - RenderTextControl {INPUT} at (301,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (448,0) size 5x18 - text run at (448,0) width 5: " " - RenderTextControl {INPUT} at (452,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (11,53) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (162,53) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (313,53) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (464,53) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (128,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] -layer at (279,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] -layer at (430,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] -layer at (581,54) size 22x12 - RenderBlock {DIV} at (116,0) size 23x13 [bgcolor=#000000] diff --git a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt deleted file mode 100644 index 1b9df24845087..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt +++ /dev/null @@ -1,64 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x202 - RenderBlock {HTML} at (0,0) size 800x202 - RenderBody {BODY} at (8,16) size 784x178 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 767x36 - text run at (0,0) width 767: "This tests that the Strong Password AutoFill and viewable visual treatment renders in an auto-filled input. It can only be" - text run at (0,18) width 137: "tested in the test tool." - RenderBlock {DIV} at (0,52) size 784x126 - RenderTextControl {INPUT} at (0,1) size 159x19 [bgcolor=#FAFFBD] [border: (2px inset #808080)] - RenderText {#text} at (159,0) size 4x18 - text run at (159,0) width 4: " " - RenderTextControl {INPUT} at (163,1) size 159x19 [bgcolor=#FAFFBD] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 153x13 - RenderBlock {DIV} at (0,0) size 153x13 - RenderText {#text} at (322,0) size 4x18 - text run at (322,0) width 4: " " - RenderTextControl {INPUT} at (326,1) size 306x19 [bgcolor=#FAFFBD] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 300x13 - RenderBlock {DIV} at (0,0) size 300x13 - RenderText {#text} at (632,0) size 4x18 - text run at (632,0) width 4: " " - RenderTextControl {INPUT} at (636,1) size 26x19 [bgcolor=#FAFFBD] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 20x13 - RenderBlock {DIV} at (0,0) size 20x13 - RenderText {#text} at (0,0) size 0x0 - RenderTextControl {INPUT} at (0,20) size 159x106 [bgcolor=#FAFFBD] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 153x100 - RenderBlock {DIV} at (0,43) size 153x14 - RenderText {#text} at (159,62) size 4x18 - text run at (159,62) width 4: " " - RenderTextControl {INPUT} at (163,20) size 26x106 [bgcolor=#FAFFBD] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 20x100 - RenderBlock {DIV} at (0,43) size 20x14 - RenderText {#text} at (189,62) size 4x18 - text run at (189,62) width 4: " " - RenderTextControl {INPUT} at (193,63) size 159x19 [bgcolor=#FAFFBD] [border: (2px inset #808080)] -layer at (11,72) size 153x13 scrollWidth 285 - RenderBlock {DIV} at (3,3) size 153x13 - RenderText {#text} at (0,0) size 284x13 - text run at (0,0) width 284: "A quick brown fox jumped over the lazy dog." -layer at (174,72) size 153x13 scrollWidth 285 - RenderBlock {DIV} at (0,0) size 153x13 - RenderText {#text} at (0,0) size 284x13 - text run at (0,0) width 284: "A quick brown fox jumped over the lazy dog." -layer at (337,72) size 300x13 - RenderBlock {DIV} at (0,0) size 300x13 - RenderText {#text} at (0,0) size 284x13 - text run at (0,0) width 284: "A quick brown fox jumped over the lazy dog." -layer at (647,72) size 20x13 scrollWidth 285 - RenderBlock {DIV} at (0,0) size 20x13 - RenderText {#text} at (0,0) size 284x13 - text run at (0,0) width 284: "A quick brown fox jumped over the lazy dog." -layer at (11,135) size 153x13 scrollWidth 285 - RenderBlock {DIV} at (0,0) size 153x13 - RenderText {#text} at (0,0) size 284x13 - text run at (0,0) width 284: "A quick brown fox jumped over the lazy dog." -layer at (174,135) size 20x13 scrollWidth 285 - RenderBlock {DIV} at (0,0) size 20x13 - RenderText {#text} at (0,0) size 284x13 - text run at (0,0) width 284: "A quick brown fox jumped over the lazy dog." -layer at (204,134) size 153x13 - RenderBlock {DIV} at (3,3) size 153x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/basic-inputs-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/basic-inputs-expected.txt deleted file mode 100644 index 85150c3137807..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/basic-inputs-expected.txt +++ /dev/null @@ -1,88 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 470x582 - RenderBlock (anonymous) at (0,0) size 470x306 - RenderText {#text} at (0,0) size 328x18 - text run at (0,0) width 328: "This tests basic inputs. Here's what you should see:" - RenderBR {BR} at (327,0) size 1x18 - RenderBR {BR} at (0,18) size 0x18 - RenderText {#text} at (0,36) size 461x54 - text run at (0,36) width 442: "first line: the letter \"a\" and then a text input field filled with repeating" - text run at (0,54) width 86: "\"foobarbaz\", " - text run at (85,54) width 376: "then the word \"text\" followed by a disabled text input field" - text run at (0,72) width 331: "filled with \"foo\" and then the letter \"b\" and then \"a\"" - RenderBR {BR} at (330,72) size 1x18 - RenderBR {BR} at (0,90) size 0x18 - RenderText {#text} at (0,108) size 467x54 - text run at (0,108) width 437: "second line: and then a password input field that's filled and then the" - text run at (0,126) width 467: "word \"password\" and then a disabled password field that's filled and then" - text run at (0,144) width 82: "the letter \"b\"" - RenderBR {BR} at (81,144) size 1x18 - RenderBR {BR} at (0,162) size 0x18 - RenderText {#text} at (0,180) size 459x36 - text run at (0,180) width 459: "third line: the letter \"a\" and then a checkbox (unchecked) with the word" - text run at (0,198) width 356: "\"checkbox\" and then a disabled checkbox and letter \"b\"" - RenderBR {BR} at (355,198) size 1x18 - RenderBR {BR} at (0,216) size 0x18 - RenderText {#text} at (0,234) size 457x54 - text run at (0,234) width 411: "fourth line: the last line has the letter \"a\" and then a redio button" - text run at (0,252) width 457: "(unselected) and then the word \"radio\" and then a disabled radio button" - text run at (0,270) width 109: "and the letter \"b\"" - RenderBR {BR} at (108,270) size 1x18 - RenderBR {BR} at (0,288) size 0x18 - RenderBlock {DIV} at (10,316) size 450x40 [border: (1px solid #FF0000)] - RenderText {#text} at (1,1) size 8x18 - text run at (1,1) width 8: "a" - RenderTextControl {INPUT} at (8,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (154,1) size 29x18 - text run at (154,1) width 29: "text " - RenderTextControl {INPUT} at (182,1) size 147x19 [color=color(srgb 0.341176 0.341176 0.341176)] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (328,1) size 20x18 - text run at (328,1) width 13: "b " - text run at (340,1) width 8: "a" - RenderTextControl {INPUT} at (1,20) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (147,20) size 66x18 - text run at (147,20) width 66: "password " - RenderTextControl {INPUT} at (212,20) size 147x19 [color=color(srgb 0.341176 0.341176 0.341176)] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 140x13 - RenderBlock {DIV} at (0,0) size 140x13 - RenderText {#text} at (358,20) size 9x18 - text run at (358,20) width 9: "b" - RenderBlock {DIV} at (10,366) size 450x21 [border: (1px solid #FF0000)] - RenderText {#text} at (1,1) size 8x18 - text run at (1,1) width 8: "a" - RenderBlock {INPUT} at (10,5) size 13x12 - RenderText {#text} at (24,1) size 66x18 - text run at (24,1) width 66: "checkbox " - RenderBlock {INPUT} at (91,5) size 13x12 [color=color(srgb 0.341176 0.341176 0.341176)] - RenderText {#text} at (105,1) size 9x18 - text run at (105,1) width 9: "b" - RenderBlock {DIV} at (10,397) size 450x21 [border: (1px solid #FF0000)] - RenderText {#text} at (1,1) size 8x18 - text run at (1,1) width 8: "a" - RenderBlock {INPUT} at (10,5) size 13x12 - RenderText {#text} at (24,1) size 37x18 - text run at (24,1) width 37: "radio " - RenderBlock {INPUT} at (62,5) size 13x12 [color=color(srgb 0.341176 0.341176 0.341176)] - RenderText {#text} at (76,1) size 9x18 - text run at (76,1) width 9: "b" -layer at (29,328) size 141x13 scrollWidth 160 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 160x13 - text run at (0,0) width 160: "foobarbazfoobarbazfoobarbaz" -layer at (204,328) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 17x13 - text run at (0,0) width 17: "foo" -layer at (22,347) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 21x13 - text run at (0,0) width 21: "\x{F79A}\x{F79A}\x{F79A}" -layer at (233,347) size 140x13 - RenderBlock {DIV} at (0,0) size 140x13 - RenderText {#text} at (0,0) size 21x13 - text run at (0,0) width 21: "\x{F79A}\x{F79A}\x{F79A}" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/box-shadow-override-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/box-shadow-override-expected.txt deleted file mode 100644 index f35a527f3006e..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/box-shadow-override-expected.txt +++ /dev/null @@ -1,83 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 399x18 - text run at (0,0) width 399: "Tests that box shadow is not applied to Aqua-themed controls." - RenderBlock {P} at (0,34) size 784x18 - RenderText {#text} at (0,0) size 259x18 - text run at (0,0) width 259: "You should not see any red on this page." - RenderBlock {DIV} at (0,68) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,87) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 17x19 - RenderBlock {DIV} at (17,3) size 105x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,106) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 22x19 - RenderBlock {DIV} at (22,3) size 100x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,125) size 784x28 - RenderBlock {INPUT} at (2,11) size 12x12 - RenderText {#text} at (16,7) size 4x18 - text run at (16,7) width 4: " " - RenderBlock {INPUT} at (22,11) size 12x12 - RenderText {#text} at (36,7) size 4x18 - text run at (36,7) width 4: " " - RenderSlider {INPUT} at (42,4) size 129x17 [color=#909090] [bgcolor=#FFFFFF] - RenderFlexibleBox {DIV} at (0,0) size 129x17 - RenderBlock {DIV} at (0,0) size 129x17 - RenderBlock {DIV} at (56,0) size 17x17 - RenderText {#text} at (173,7) size 4x18 - text run at (173,7) width 4: " " - RenderFileUploadControl {INPUT} at (177,8) size 238x18 "no file selected" - RenderButton {INPUT} at (0,0) size 78x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 62x13 - RenderText at (0,0) size 62x13 - text run at (0,0) width 62: "Choose File" - RenderText {#text} at (415,7) size 4x18 - text run at (415,7) width 4: " " - RenderButton {INPUT} at (419,0) size 75x28 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 59x23 - RenderText at (0,0) size 59x23 - text run at (0,0) width 59: "Button" - RenderText {#text} at (493,7) size 5x18 - text run at (493,7) width 5: " " - RenderButton {INPUT} at (497,8) size 52x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText at (0,0) size 35x13 - text run at (0,0) width 35: "Button" - RenderText {#text} at (548,7) size 5x18 - text run at (548,7) width 5: " " - RenderButton {INPUT} at (552,12) size 34x15 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,4) size 17x6 - RenderText at (0,0) size 17x6 - text run at (0,0) width 17: "Button" - RenderText {#text} at (585,7) size 5x18 - text run at (585,7) width 5: " " - RenderButton {BUTTON} at (589,0) size 75x28 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 59x23 - RenderText {#text} at (0,0) size 59x23 - text run at (0,0) width 59: "Button" - RenderText {#text} at (0,0) size 0x0 -layer at (19,79) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (0,0) size 37x13 - text run at (0,0) width 37: "Search" -layer at (28,98) size 105x13 - RenderBlock {DIV} at (0,0) size 105x13 -layer at (33,117) size 100x13 - RenderBlock {DIV} at (0,0) size 100x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/control-restrict-line-height-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/control-restrict-line-height-expected.txt deleted file mode 100644 index 266510c8be5fd..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/control-restrict-line-height-expected.txt +++ /dev/null @@ -1,28 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 529x18 - text run at (0,0) width 529: "This tests that we don't honor line-height for controls that have restricted font size." - RenderBR {BR} at (528,0) size 1x18 - RenderMenuList {SELECT} at (0,18) size 302x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 302x18 - RenderText at (8,2) size 271x13 - text run at (8,2) width 271: "This text should be centered vertically in the button" - RenderBR {BR} at (302,17) size 0x18 - RenderButton {INPUT} at (0,36) size 287x32 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 271x27 - RenderText at (0,6) size 271x13 - text run at (0,6) width 271: "This text should be centered vertically in the button" - RenderBR {BR} at (286,41) size 1x18 - RenderTextControl {INPUT} at (0,67) size 147x20 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 -layer at (19,79) size 114x13 scrollWidth 271 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (0,0) size 271x13 - text run at (0,0) width 271: "This text should be centered vertically in the button" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/cursor-at-editable-content-boundary-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/cursor-at-editable-content-boundary-expected.txt deleted file mode 100644 index aa4dbd36f7fb2..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/cursor-at-editable-content-boundary-expected.txt +++ /dev/null @@ -1,10 +0,0 @@ -autowrap text area with dir=rtl. - -nowrap text area with dir=rtl. - -autowrap text area with dir=ltr. - -vertical text. - -FAIL test id: textarea_rtl_no_wrap (text width: 107 != caretRange: 106), which means moving caret in the text, caret might be invisible or overlap with element. - diff --git a/LayoutTests/platform/mac-ventura/fast/forms/datalist/datalist-searchinput-appearance-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/datalist/datalist-searchinput-appearance-expected.txt deleted file mode 100644 index 2566b6e4645f4..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/datalist/datalist-searchinput-appearance-expected.txt +++ /dev/null @@ -1,14 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x35 - RenderBlock {HTML} at (0,0) size 800x35 - RenderBody {BODY} at (8,8) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 102x13 - RenderBlock {DIV} at (109,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (19,11) size 102x13 - RenderBlock {DIV} at (0,0) size 102x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/encoding-test-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/encoding-test-expected.txt deleted file mode 100644 index fcc8fb02b2a94..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/encoding-test-expected.txt +++ /dev/null @@ -1,13 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {FORM} at (0,0) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,35) size 784x18 - RenderText {#text} at (0,0) size 127x18 - text run at (0,0) width 127: "multipart/form-data" -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/fieldset-align-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/fieldset-align-expected.txt deleted file mode 100644 index 4cb2e9ddaa171..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/fieldset-align-expected.txt +++ /dev/null @@ -1,181 +0,0 @@ -layer at (0,0) size 785x1323 - RenderView at (0,0) size 785x600 -layer at (0,0) size 785x1323 - RenderBlock {HTML} at (0,0) size 785x1323 - RenderBody {BODY} at (8,8) size 769x1300 - RenderBlock {P} at (0,0) size 769x18 - RenderText {#text} at (0,0) size 111x18 - text run at (0,0) width 111: "Legend align test" - RenderFieldSet {FIELDSET} at (2,34) size 765x55 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (14,0) size 104x18 - RenderText {#text} at (2,0) size 100x18 - text run at (2,0) width 100: "My Legend left" - RenderBlock (anonymous) at (14,23) size 737x20 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (2,88) size 765x56 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (321,0) size 123x18 - RenderText {#text} at (2,0) size 118x18 - text run at (2,0) width 118: "My Legend center" - RenderBlock (anonymous) at (14,23) size 737x20 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (2,143) size 765x55 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (638,0) size 113x18 - RenderText {#text} at (2,0) size 109x18 - text run at (2,0) width 109: "My Legend right" - RenderBlock (anonymous) at (14,23) size 737x20 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (2,197) size 765x56 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (14,0) size 127x18 - RenderText {#text} at (2,0) size 123x18 - text run at (2,0) width 123: "My Legend default" - RenderBlock (anonymous) at (14,23) size 737x20 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,278) size 769x19 - RenderText {#text} at (0,0) size 148x18 - text run at (0,0) width 148: "Legend align test, RTL" - RenderBlock (anonymous) at (0,312) size 769x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,312) size 769x219 - RenderFieldSet {FIELDSET} at (2,0) size 765x55 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (14,0) size 104x18 - RenderText {#text} at (2,0) size 100x18 - text run at (2,0) width 100: "My Legend left" - RenderBlock (anonymous) at (14,23) size 737x20 - RenderTextControl {INPUT} at (591,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (2,54) size 765x56 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (321,0) size 123x18 - RenderText {#text} at (2,0) size 118x18 - text run at (2,0) width 118: "My Legend center" - RenderBlock (anonymous) at (14,23) size 737x20 - RenderTextControl {INPUT} at (591,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (2,109) size 765x55 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (638,0) size 113x18 - RenderText {#text} at (2,0) size 109x18 - text run at (2,0) width 109: "My Legend right" - RenderBlock (anonymous) at (14,23) size 737x20 - RenderTextControl {INPUT} at (591,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (2,163) size 765x56 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (624,0) size 127x18 - RenderText {#text} at (2,0) size 123x18 - text run at (2,0) width 123: "My Legend default" - RenderBlock (anonymous) at (14,23) size 737x20 - RenderTextControl {INPUT} at (591,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,530) size 769x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,556) size 769x19 - RenderText {#text} at (0,0) size 275x18 - text run at (0,0) width 275: "Legend align test with margin and padding" - RenderFieldSet {FIELDSET} at (15,590) size 739x70 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (17,0) size 104x18 - RenderText {#text} at (2,0) size 100x18 - text run at (2,0) width 100: "My Legend left" - RenderBlock (anonymous) at (17,33) size 705x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (15,674) size 739x70 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (308,0) size 123x18 - RenderText {#text} at (2,0) size 118x18 - text run at (2,0) width 118: "My Legend center" - RenderBlock (anonymous) at (17,33) size 705x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (15,758) size 739x70 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (609,0) size 113x18 - RenderText {#text} at (2,0) size 109x18 - text run at (2,0) width 109: "My Legend right" - RenderBlock (anonymous) at (17,33) size 705x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (15,842) size 739x70 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (17,0) size 127x18 - RenderText {#text} at (2,0) size 123x18 - text run at (2,0) width 123: "My Legend default" - RenderBlock (anonymous) at (17,33) size 705x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,944) size 769x19 - RenderText {#text} at (0,0) size 312x18 - text run at (0,0) width 312: "Legend align test with margin and padding, RTL" - RenderBlock (anonymous) at (0,978) size 769x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,978) size 769x322 - RenderFieldSet {FIELDSET} at (15,0) size 739x69 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (17,0) size 104x18 - RenderText {#text} at (2,0) size 100x18 - text run at (2,0) width 100: "My Legend left" - RenderBlock (anonymous) at (17,33) size 705x19 - RenderTextControl {INPUT} at (559,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (15,84) size 739x69 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (308,0) size 123x18 - RenderText {#text} at (2,0) size 118x18 - text run at (2,0) width 118: "My Legend center" - RenderBlock (anonymous) at (17,33) size 705x19 - RenderTextControl {INPUT} at (559,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (15,168) size 739x69 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (609,0) size 113x18 - RenderText {#text} at (2,0) size 109x18 - text run at (2,0) width 109: "My Legend right" - RenderBlock (anonymous) at (17,33) size 705x19 - RenderTextControl {INPUT} at (559,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderFieldSet {FIELDSET} at (15,252) size 739x69 [border: (2px groove #C0C0C0)] - RenderBlock {LEGEND} at (595,0) size 127x18 - RenderText {#text} at (2,0) size 123x18 - text run at (2,0) width 123: "My Legend default" - RenderBlock (anonymous) at (17,33) size 705x19 - RenderTextControl {INPUT} at (559,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,1314) size 769x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (27,69) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (27,123) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (27,178) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (27,232) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (8,268) size 769x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,260) size 769x3 [color=#808080] [border: (1px inset #808080)] -layer at (618,347) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (618,402) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (618,456) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (618,511) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (8,547) size 769x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,538) size 769x3 [color=#808080] [border: (1px inset #808080)] -layer at (43,635) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (43,719) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (43,803) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (43,887) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (8,935) size 769x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,926) size 769x3 [color=#808080] [border: (1px inset #808080)] -layer at (602,1023) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (602,1107) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (602,1191) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (602,1275) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/form-element-geometry-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/form-element-geometry-expected.txt deleted file mode 100644 index a884f29de68b8..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/form-element-geometry-expected.txt +++ /dev/null @@ -1,261 +0,0 @@ -layer at (0,0) size 785x614 - RenderView at (0,0) size 785x600 -layer at (0,0) size 785x614 - RenderBlock {HTML} at (0,0) size 785x614 - RenderBody {BODY} at (8,8) size 769x598 - RenderBlock {H1} at (0,0) size 769x37 - RenderText {#text} at (0,0) size 420x37 - text run at (0,0) width 420: "Form Element Geometry Tests" - RenderBlock {P} at (0,58) size 769x19 - RenderText {#text} at (0,0) size 551x18 - text run at (0,0) width 551: "These tests help us tune the widget classes in KWQ to have all the right fudge factors." - RenderBlock {H2} at (0,96) size 769x29 - RenderText {#text} at (0,0) size 167x28 - text run at (0,0) width 167: "Bounding Boxes" - RenderTable {TABLE} at (0,144) size 169x29 - RenderTableSection {TBODY} at (0,0) size 169x28 - RenderTableRow {TR} at (0,2) size 169x24 - RenderTableCell {TD} at (2,2) size 57x24 [r=0 c=0 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 55x22 [border: (2px solid #0000FF)] - RenderInline {FONT} at (2,-7) size 51x28 - RenderButton {INPUT} at (2,2) size 51x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderTableCell {TD} at (60,2) size 67x24 [r=0 c=1 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 64x22 [border: (2px solid #0000FF)] - RenderInline {FONT} at (2,-7) size 60x28 - RenderMenuList {SELECT} at (2,2) size 60x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 60x18 - RenderText at (8,2) size 29x13 - text run at (8,2) width 29: "menu" - RenderTableCell {TD} at (128,5) size 19x18 [r=0 c=2 rs=1 cs=1] - RenderBlock {DIV} at (1,4) size 16x16 [border: (2px solid #0000FF)] - RenderInline {FONT} at (2,-10) size 12x28 - RenderBlock {INPUT} at (2,2) size 12x12 - RenderTableCell {TD} at (148,5) size 19x18 [r=0 c=3 rs=1 cs=1] - RenderBlock {DIV} at (1,4) size 16x16 [border: (2px solid #0000FF)] - RenderInline {FONT} at (2,-10) size 12x28 - RenderBlock {INPUT} at (2,2) size 12x12 - RenderTable {TABLE} at (0,172) size 169x29 - RenderTableSection {TBODY} at (0,0) size 169x28 - RenderTableRow {TR} at (0,2) size 169x24 - RenderTableCell {TD} at (2,2) size 57x24 [r=0 c=0 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 55x22 [border: (2px solid #0000FF)] - RenderButton {INPUT} at (2,2) size 51x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderTableCell {TD} at (60,2) size 67x24 [r=0 c=1 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 64x22 [border: (2px solid #0000FF)] - RenderMenuList {SELECT} at (2,2) size 60x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 60x18 - RenderText at (8,2) size 29x13 - text run at (8,2) width 29: "menu" - RenderTableCell {TD} at (128,5) size 19x18 [r=0 c=2 rs=1 cs=1] - RenderBlock {DIV} at (1,4) size 16x16 [border: (2px solid #0000FF)] - RenderBlock {INPUT} at (2,2) size 12x12 - RenderTableCell {TD} at (148,5) size 19x18 [r=0 c=3 rs=1 cs=1] - RenderBlock {DIV} at (1,4) size 16x16 [border: (2px solid #0000FF)] - RenderBlock {INPUT} at (2,2) size 12x12 - RenderTable {TABLE} at (0,200) size 169x29 - RenderTableSection {TBODY} at (0,0) size 169x28 - RenderTableRow {TR} at (0,2) size 169x24 - RenderTableCell {TD} at (2,2) size 57x24 [r=0 c=0 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 55x22 [border: (2px solid #0000FF)] - RenderInline {FONT} at (2,5) size 51x13 - RenderButton {INPUT} at (2,2) size 51x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderTableCell {TD} at (60,2) size 67x24 [r=0 c=1 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 64x22 [border: (2px solid #0000FF)] - RenderInline {FONT} at (2,5) size 60x13 - RenderMenuList {SELECT} at (2,2) size 60x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 60x18 - RenderText at (8,2) size 29x13 - text run at (8,2) width 29: "menu" - RenderTableCell {TD} at (128,5) size 19x18 [r=0 c=2 rs=1 cs=1] - RenderBlock {DIV} at (1,4) size 16x16 [border: (2px solid #0000FF)] - RenderInline {FONT} at (2,2) size 12x13 - RenderBlock {INPUT} at (2,2) size 12x12 - RenderTableCell {TD} at (148,5) size 19x18 [r=0 c=3 rs=1 cs=1] - RenderBlock {DIV} at (1,4) size 16x16 [border: (2px solid #0000FF)] - RenderInline {FONT} at (2,2) size 12x13 - RenderBlock {INPUT} at (2,2) size 12x12 - RenderTable {TABLE} at (0,228) size 543x68 - RenderTableSection {TBODY} at (0,0) size 543x67 - RenderTableRow {TR} at (0,2) size 543x63 - RenderTableCell {TD} at (2,2) size 83x25 [r=0 c=0 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 81x23 [border: (2px solid #0000FF)] - RenderTextControl {INPUT} at (2,2) size 77x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableCell {TD} at (86,2) size 40x63 [r=0 c=1 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 37x61 [border: (2px solid #0000FF)] - RenderListBox {SELECT} at (2,2) size 33x57 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (127,2) size 245x24 [r=0 c=2 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 242x22 [border: (2px solid #0000FF)] - RenderFileUploadControl {INPUT} at (2,2) size 238x18 "no file selected" - RenderButton {INPUT} at (0,0) size 78x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 62x13 - RenderText at (0,0) size 62x13 - text run at (0,0) width 62: "Choose File" - RenderTableCell {TD} at (373,2) size 168x38 [r=0 c=3 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 165x36 [border: (2px solid #0000FF)] - RenderBlock {H2} at (0,315) size 769x29 - RenderText {#text} at (0,0) size 200x28 - text run at (0,0) width 200: "Baseline Alignment" - RenderBlock {DIV} at (0,363) size 769x29 - RenderInline {FONT} at (0,0) size 203x28 - RenderText {#text} at (0,0) size 42x28 - text run at (0,0) width 42: "text " - RenderButton {INPUT} at (41,9) size 52x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderText {#text} at (92,0) size 7x28 - text run at (92,0) width 7: " " - RenderMenuList {SELECT} at (98,9) size 61x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 60x18 - RenderText at (8,2) size 29x13 - text run at (8,2) width 29: "menu" - RenderText {#text} at (158,0) size 7x28 - text run at (158,0) width 7: " " - RenderBlock {INPUT} at (166,12) size 13x12 - RenderText {#text} at (180,0) size 7x28 - text run at (180,0) width 7: " " - RenderBlock {INPUT} at (188,12) size 13x12 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,391) size 769x20 - RenderText {#text} at (0,0) size 28x18 - text run at (0,0) width 28: "text " - RenderButton {INPUT} at (27,1) size 52x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderText {#text} at (78,0) size 5x18 - text run at (78,0) width 5: " " - RenderMenuList {SELECT} at (82,1) size 61x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 60x18 - RenderText at (8,2) size 29x13 - text run at (8,2) width 29: "menu" - RenderText {#text} at (142,0) size 5x18 - text run at (142,0) width 5: " " - RenderBlock {INPUT} at (148,4) size 13x12 - RenderText {#text} at (162,0) size 5x18 - text run at (162,0) width 5: " " - RenderBlock {INPUT} at (168,4) size 13x12 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,410) size 769x19 - RenderInline {FONT} at (0,3) size 168x13 - RenderText {#text} at (0,3) size 18x13 - text run at (0,3) width 18: "text " - RenderButton {INPUT} at (17,0) size 51x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderText {#text} at (67,3) size 4x13 - text run at (67,3) width 4: " " - RenderMenuList {SELECT} at (70,0) size 61x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 60x18 - RenderText at (8,2) size 29x13 - text run at (8,2) width 29: "menu" - RenderText {#text} at (130,3) size 3x13 - text run at (130,3) width 3: " " - RenderBlock {INPUT} at (134,3) size 13x12 - RenderText {#text} at (148,3) size 4x13 - text run at (148,3) width 4: " " - RenderBlock {INPUT} at (153,3) size 13x12 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,428) size 769x38 - RenderText {#text} at (0,18) size 28x18 - text run at (0,18) width 28: "text " - RenderTextControl {INPUT} at (27,18) size 78x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (104,18) size 5x18 - text run at (104,18) width 5: " " - RenderFileUploadControl {INPUT} at (108,19) size 239x18 "no file selected" - RenderButton {INPUT} at (0,0) size 78x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 62x13 - RenderText at (0,0) size 62x13 - text run at (0,0) width 62: "Choose File" - RenderText {#text} at (346,18) size 5x18 - text run at (346,18) width 5: " " - RenderText {#text} at (0,0) size 0x0 - RenderBlock {H2} at (0,484) size 769x29 - RenderText {#text} at (0,0) size 198x28 - text run at (0,0) width 198: "Pop-up Menu Sizes" - RenderBlock {DIV} at (0,532) size 769x29 - RenderInline {FONT} at (0,0) size 162x28 - RenderText {#text} at (0,0) size 0x0 - RenderMenuList {SELECT} at (0,9) size 36x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 36x18 - RenderText at (8,2) size 0x13 - text run at (8,2) width 0: " " - RenderText {#text} at (36,0) size 6x28 - text run at (36,0) width 6: " " - RenderMenuList {SELECT} at (42,9) size 36x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 36x18 - RenderText at (8,2) size 3x13 - text run at (8,2) width 3: "|" - RenderText {#text} at (78,0) size 6x28 - text run at (78,0) width 6: " " - RenderMenuList {SELECT} at (84,9) size 78x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 78x18 - RenderText at (8,2) size 47x13 - text run at (8,2) width 47: "xxxxxxxx" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,560) size 769x20 - RenderMenuList {SELECT} at (0,1) size 36x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 36x18 - RenderText at (8,2) size 0x13 - text run at (8,2) width 0: " " - RenderText {#text} at (36,0) size 4x18 - text run at (36,0) width 4: " " - RenderMenuList {SELECT} at (40,1) size 36x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 36x18 - RenderText at (8,2) size 3x13 - text run at (8,2) width 3: "|" - RenderText {#text} at (76,0) size 4x18 - text run at (76,0) width 4: " " - RenderMenuList {SELECT} at (80,1) size 78x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 78x18 - RenderText at (8,2) size 47x13 - text run at (8,2) width 47: "xxxxxxxx" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,579) size 769x19 - RenderInline {FONT} at (0,3) size 155x13 - RenderText {#text} at (0,0) size 0x0 - RenderMenuList {SELECT} at (0,0) size 36x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 36x18 - RenderText at (8,2) size 0x13 - text run at (8,2) width 0: " " - RenderText {#text} at (36,3) size 3x13 - text run at (36,3) width 3: " " - RenderMenuList {SELECT} at (38,0) size 37x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 36x18 - RenderText at (8,2) size 3x13 - text run at (8,2) width 3: "|" - RenderText {#text} at (74,3) size 3x13 - text run at (74,3) width 3: " " - RenderMenuList {SELECT} at (77,0) size 78x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 78x18 - RenderText at (8,2) size 47x13 - text run at (8,2) width 47: "xxxxxxxx" - RenderText {#text} at (0,0) size 0x0 -layer at (16,244) size 71x13 - RenderBlock {DIV} at (3,3) size 71x13 - RenderText {#text} at (0,0) size 47x13 - text run at (0,0) width 47: "text field" -layer at (385,241) size 161x32 clip at (386,242) size 159x30 - RenderTextControl {TEXTAREA} at (2,2) size 161x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 155x13 - RenderText {#text} at (0,0) size 43x13 - text run at (0,0) width 43: "textarea" -layer at (39,457) size 71x13 - RenderBlock {DIV} at (3,3) size 71x13 - RenderText {#text} at (0,0) size 47x13 - text run at (0,0) width 47: "text field" -layer at (359,436) size 161x32 clip at (360,437) size 159x30 - RenderTextControl {TEXTAREA} at (350,0) size 162x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 155x13 - RenderText {#text} at (0,0) size 43x13 - text run at (0,0) width 43: "textarea" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-align-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-align-expected.txt deleted file mode 100644 index a07f3eca81b37..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-align-expected.txt +++ /dev/null @@ -1,39 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 576x18 - text run at (0,0) width 576: "The following 5 inputs should be all be rendered exactly the same, aligned to the left side." - RenderBlock (anonymous) at (0,34) size 784x76 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,0) size 1x18 - RenderTextControl {INPUT} at (0,19) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,19) size 1x18 - RenderTextControl {INPUT} at (0,38) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,38) size 1x18 - RenderTextControl {INPUT} at (0,57) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,57) size 1x18 - RenderBlock {DIV} at (0,110) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 97x13 - text run at (0,0) width 97: "The quick brown..." -layer at (11,64) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 97x13 - text run at (0,0) width 97: "The quick brown..." -layer at (11,83) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 97x13 - text run at (0,0) width 97: "The quick brown..." -layer at (11,102) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 97x13 - text run at (0,0) width 97: "The quick brown..." -layer at (11,121) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 97x13 - text run at (0,0) width 97: "The quick brown..." diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-bkcolor-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-bkcolor-expected.txt deleted file mode 100644 index 6bd2cd275f0c8..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-bkcolor-expected.txt +++ /dev/null @@ -1,18 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 574x18 - text run at (0,0) width 574: "This tests that background color and background images can be set on the new text fields." - RenderBR {BR} at (573,0) size 1x18 - RenderTextControl {INPUT} at (0,18) size 147x19 [bgcolor=#FFC0CB] [border: (2px inset #808080)] - RenderBR {BR} at (146,18) size 1x18 - RenderTextControl {INPUT} at (0,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 106x13 - text run at (0,0) width 106: "This should be pink." -layer at (11,48) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-default-bkcolor-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-default-bkcolor-expected.txt deleted file mode 100644 index 2be8ee342d95e..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-default-bkcolor-expected.txt +++ /dev/null @@ -1,14 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 [bgcolor=#800080] - RenderText {#text} at (0,0) size 479x18 - text run at (0,0) width 479: "This tests that the default background color for the new text fields is white." - RenderBR {BR} at (479,0) size 0x18 - RenderTextControl {INPUT} at (0,18) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 112x13 - text run at (0,0) width 112: "This should be white." diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-focus-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-focus-expected.txt deleted file mode 100644 index 6a310cbe74d91..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-focus-expected.txt +++ /dev/null @@ -1,35 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x18 - RenderText {#text} at (0,0) size 769x18 - text run at (0,0) width 769: "This test uses the new text field to test focus() and blur() and to make sure that onFocus and onBlur events fire correctly." - RenderBlock {P} at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,0) size 5x18 - text run at (146,0) width 5: " " - RenderTextControl {INPUT} at (150,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,69) size 784x72 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 324x18 - text run at (0,18) width 324: "Test Passed. Text field 1's onFocus event has fired." - RenderBR {BR} at (323,18) size 1x18 - RenderText {#text} at (0,36) size 314x18 - text run at (0,36) width 314: "Test Passed. Text field 1's onBlur event has fired." - RenderBR {BR} at (313,36) size 1x18 - RenderText {#text} at (0,54) size 324x18 - text run at (0,54) width 324: "Test Passed. Text field 2's onFocus event has fired." - RenderBlock {P} at (0,157) size 784x0 -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 78x13 - text run at (0,0) width 78: "My Text Field 1" -layer at (162,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 80x13 - text run at (0,0) width 80: "My Text Field 2" -selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 3 {INPUT} of child 1 {P} of body -selection end: position 15 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 3 {INPUT} of child 1 {P} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-height-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-height-expected.txt deleted file mode 100644 index 45ee1e6cd09fe..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-height-expected.txt +++ /dev/null @@ -1,97 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x18 - RenderText {#text} at (0,0) size 781x18 - text run at (0,0) width 781: "This tests the height attribute of form elements. The only element that should honour this value is the Image type of input." - RenderBlock {FORM} at (0,18) size 784x231 - RenderText {#text} at (0,0) size 37x18 - text run at (0,0) width 37: "input " - RenderTextControl {INPUT} at (36,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (183,0) size 1x18 - RenderText {#text} at (0,19) size 28x18 - text run at (0,19) width 28: "text " - RenderTextControl {INPUT} at (27,19) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (174,19) size 1x18 - RenderText {#text} at (0,38) size 66x18 - text run at (0,38) width 66: "checkbox " - RenderBlock {INPUT} at (67,42) size 13x12 - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (81,38) size 1x18 - RenderText {#text} at (0,57) size 25x18 - text run at (0,57) width 25: "file " - RenderFileUploadControl {INPUT} at (24,58) size 239x18 "no file selected" - RenderButton {INPUT} at (0,0) size 78x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 62x13 - RenderText at (0,0) size 62x13 - text run at (0,0) width 62: "Choose File" - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (262,57) size 1x18 - RenderText {#text} at (0,76) size 44x18 - text run at (0,76) width 44: "image " - RenderImage {INPUT} at (43,89) size 11x1 - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (53,76) size 1x18 - RenderText {#text} at (0,94) size 37x18 - text run at (0,94) width 37: "radio " - RenderBlock {INPUT} at (38,98) size 13x12 - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (52,94) size 1x18 - RenderText {#text} at (0,118) size 40x18 - text run at (0,118) width 40: "range " - RenderSlider {INPUT} at (41,115) size 130x17 [color=#909090] [bgcolor=#FFFFFF] - RenderFlexibleBox {DIV} at (0,0) size 129x17 - RenderBlock {DIV} at (0,0) size 129x17 - RenderBlock {DIV} at (56,0) size 17x17 - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (172,118) size 1x18 - RenderText {#text} at (0,136) size 35x18 - text run at (0,136) width 35: "reset " - RenderButton {INPUT} at (34,137) size 46x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 30x13 - RenderText at (0,0) size 30x13 - text run at (0,0) width 30: "Reset" - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (79,136) size 1x18 - RenderText {#text} at (0,155) size 48x18 - text run at (0,155) width 48: "submit " - RenderButton {INPUT} at (47,156) size 54x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 37x13 - RenderText at (0,0) size 37x13 - text run at (0,0) width 37: "Submit" - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (100,155) size 1x18 - RenderText {#text} at (0,174) size 51x18 - text run at (0,174) width 51: "isindex " - RenderTextControl {INPUT} at (50,174) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (197,174) size 1x18 - RenderText {#text} at (0,193) size 65x18 - text run at (0,193) width 65: "password " - RenderTextControl {INPUT} at (64,193) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (211,193) size 1x18 - RenderText {#text} at (0,212) size 45x18 - text run at (0,212) width 45: "search " - RenderTextControl {INPUT} at (44,212) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 -layer at (48,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (39,48) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (61,203) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (75,222) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 -layer at (64,241) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-preventDefault-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-preventDefault-expected.txt deleted file mode 100644 index 962fa097c9826..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-preventDefault-expected.txt +++ /dev/null @@ -1,21 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 681x18 - text run at (0,18) width 681: "This tests that preventDefault called onmousedown will prevent a caret from being placed in the text field." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (10,50) size 147x19 - RenderTextControl {INPUT} at (10,50) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] -layer at (13,53) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 126x13 - text run at (0,0) width 126: "No caret should be here" -layer at (10,70) size 328x36 - RenderBlock (positioned) {DIV} at (10,70) size 328x36 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 328x18 - text run at (0,18) width 328: "mousedown on target [object HTMLInputElement]" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-selection-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-selection-expected.txt deleted file mode 100644 index 66b5c8b176898..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-selection-expected.txt +++ /dev/null @@ -1,82 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x18 - RenderText {#text} at (0,0) size 343x18 - text run at (0,0) width 343: "This tests the selection methods on the new text field." - RenderBlock {P} at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,69) size 784x486 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 200x18 - text run at (0,18) width 200: "Test 1: setSelectionRange(0, 0)" - RenderBR {BR} at (199,18) size 1x18 - RenderText {#text} at (0,36) size 48x18 - text run at (0,36) width 48: "Passed." - RenderBR {BR} at (47,36) size 1x18 - RenderBR {BR} at (0,54) size 0x18 - RenderText {#text} at (0,72) size 163x18 - text run at (0,72) width 163: "Test 2: selectionEnd = 17" - RenderBR {BR} at (162,72) size 1x18 - RenderText {#text} at (0,90) size 48x18 - text run at (0,90) width 48: "Passed." - RenderBR {BR} at (47,90) size 1x18 - RenderBR {BR} at (0,108) size 0x18 - RenderText {#text} at (0,126) size 159x18 - text run at (0,126) width 159: "Test 3: selectionStart = 1" - RenderBR {BR} at (158,126) size 1x18 - RenderText {#text} at (0,144) size 48x18 - text run at (0,144) width 48: "Passed." - RenderBR {BR} at (47,144) size 1x18 - RenderBR {BR} at (0,162) size 0x18 - RenderText {#text} at (0,180) size 208x18 - text run at (0,180) width 208: "Test 4: setSelectionRange(10, 3)" - RenderBR {BR} at (207,180) size 1x18 - RenderText {#text} at (0,198) size 48x18 - text run at (0,198) width 48: "Passed." - RenderBR {BR} at (47,198) size 1x18 - RenderBR {BR} at (0,216) size 0x18 - RenderText {#text} at (0,234) size 155x18 - text run at (0,234) width 155: "Test 5: selectionEnd = 2" - RenderBR {BR} at (154,234) size 1x18 - RenderText {#text} at (0,252) size 48x18 - text run at (0,252) width 48: "Passed." - RenderBR {BR} at (47,252) size 1x18 - RenderBR {BR} at (0,270) size 0x18 - RenderText {#text} at (0,288) size 200x18 - text run at (0,288) width 200: "Test 6: setSelectionRange(5, 4)" - RenderBR {BR} at (199,288) size 1x18 - RenderText {#text} at (0,306) size 48x18 - text run at (0,306) width 48: "Passed." - RenderBR {BR} at (47,306) size 1x18 - RenderBR {BR} at (0,324) size 0x18 - RenderText {#text} at (0,342) size 211x18 - text run at (0,342) width 211: "Test 7: setSelectionRange(-5, -4)" - RenderBR {BR} at (210,342) size 1x18 - RenderText {#text} at (0,360) size 48x18 - text run at (0,360) width 48: "Passed." - RenderBR {BR} at (47,360) size 1x18 - RenderBR {BR} at (0,378) size 0x18 - RenderText {#text} at (0,396) size 214x18 - text run at (0,396) width 214: "Test 8: setSelectionRange(-5, 80)" - RenderBR {BR} at (213,396) size 1x18 - RenderText {#text} at (0,414) size 48x18 - text run at (0,414) width 48: "Passed." - RenderBR {BR} at (47,414) size 1x18 - RenderBR {BR} at (0,432) size 0x18 - RenderText {#text} at (0,450) size 208x18 - text run at (0,450) width 208: "Test 9: setSelectionRange(3, 12)" - RenderBR {BR} at (207,450) size 1x18 - RenderText {#text} at (0,468) size 48x18 - text run at (0,468) width 48: "Passed." - RenderBR {BR} at (47,468) size 1x18 - RenderBlock {P} at (0,571) size 784x0 -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 133x13 - text run at (0,0) width 133: "123456789 ABCDEFGHIJ" -selection start: position 3 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 1 {P} of body -selection end: position 12 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 1 {P} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-spinbutton-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-spinbutton-expected.txt deleted file mode 100644 index 7d7e519ecf7aa..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-spinbutton-expected.txt +++ /dev/null @@ -1,207 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 245x18 - text run at (0,0) width 245: "Test appearances of outer-spin-button." - RenderBlock {DIV} at (0,34) size 784x0 - RenderBlock {DIV} at (0,34) size 784x464 - RenderTable {TABLE} at (0,0) size 489x464 - RenderTableSection {TBODY} at (0,0) size 489x464 - RenderTableRow {TR} at (0,2) size 489x460 - RenderTableCell {TD} at (2,71) size 194x322 [r=0 c=0 rs=1 cs=1] - RenderBlock {DIV} at (1,70) size 192x32 - RenderTextControl {INPUT} at (0,0) size 112x16 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (111,-3) size 1x18 - RenderTextControl {INPUT} at (0,16) size 112x16 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 106x16 - RenderBlock {DIV} at (0,2) size 93x11 - RenderBlock {DIV} at (1,102) size 192x34 - RenderTextControl {INPUT} at (0,0) size 124x17 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (123,-2) size 1x18 - RenderTextControl {INPUT} at (0,17) size 124x17 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 118x15 - RenderBlock {DIV} at (0,2) size 105x11 - RenderBlock {DIV} at (1,136) size 192x36 - RenderTextControl {INPUT} at (0,0) size 136x18 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (135,-1) size 1x18 - RenderTextControl {INPUT} at (0,18) size 136x18 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 130x16 - RenderBlock {DIV} at (0,1) size 117x13 - RenderBlock {DIV} at (1,172) size 192x38 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,0) size 1x18 - RenderTextControl {INPUT} at (0,19) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 141x17 - RenderBlock {DIV} at (0,1) size 128x14 - RenderBlock {DIV} at (1,210) size 192x42 - RenderTextControl {INPUT} at (0,0) size 159x21 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (158,1) size 1x18 - RenderTextControl {INPUT} at (0,21) size 159x21 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 153x19 - RenderBlock {DIV} at (0,1) size 140x16 - RenderBlock {DIV} at (1,252) size 192x44 - RenderTextControl {INPUT} at (0,0) size 170x22 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (169,2) size 1x18 - RenderTextControl {INPUT} at (0,22) size 170x22 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 164x20 - RenderBlock {DIV} at (0,1) size 149x17 - RenderBlock {DIV} at (1,296) size 192x46 - RenderTextControl {INPUT} at (0,0) size 181x23 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (180,3) size 1x18 - RenderTextControl {INPUT} at (0,23) size 181x23 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 175x21 - RenderBlock {DIV} at (0,2) size 160x17 - RenderBlock {DIV} at (1,342) size 192x48 - RenderTextControl {INPUT} at (0,0) size 192x24 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (191,4) size 1x18 - RenderTextControl {INPUT} at (0,24) size 192x24 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 186x24 - RenderBlock {DIV} at (0,2) size 171x19 - RenderTableCell {TD} at (197,2) size 290x460 [r=0 c=1 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 288x48 - RenderTextControl {INPUT} at (0,0) size 203x24 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (202,4) size 1x18 - RenderTextControl {INPUT} at (0,24) size 203x24 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 197x24 - RenderBlock {DIV} at (0,3) size 182x18 - RenderBlock {DIV} at (1,49) size 288x52 - RenderTextControl {INPUT} at (0,0) size 213x26 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (212,5) size 1x18 - RenderTextControl {INPUT} at (0,26) size 213x26 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 207x26 - RenderBlock {DIV} at (0,2) size 192x21 - RenderBlock {DIV} at (1,101) size 288x54 - RenderTextControl {INPUT} at (0,0) size 225x27 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (224,6) size 1x18 - RenderTextControl {INPUT} at (0,27) size 225x27 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 219x27 - RenderBlock {DIV} at (0,3) size 200x21 - RenderBlock {DIV} at (1,155) size 288x56 - RenderTextControl {INPUT} at (0,0) size 237x28 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (236,7) size 1x18 - RenderTextControl {INPUT} at (0,28) size 237x28 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 231x28 - RenderBlock {DIV} at (0,3) size 212x22 - RenderBlock {DIV} at (1,211) size 288x58 - RenderTextControl {INPUT} at (0,0) size 248x29 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (247,8) size 1x18 - RenderTextControl {INPUT} at (0,29) size 248x29 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 242x29 - RenderBlock {DIV} at (0,3) size 223x23 - RenderBlock {DIV} at (1,269) size 288x60 - RenderTextControl {INPUT} at (0,0) size 261x30 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (260,9) size 1x18 - RenderTextControl {INPUT} at (0,30) size 261x30 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 255x30 - RenderBlock {DIV} at (0,3) size 236x24 - RenderBlock {DIV} at (1,329) size 288x64 - RenderTextControl {INPUT} at (0,0) size 274x32 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (273,10) size 1x18 - RenderTextControl {INPUT} at (0,32) size 274x32 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 268x32 - RenderBlock {DIV} at (0,3) size 249x26 - RenderBlock {DIV} at (1,393) size 288x66 - RenderTextControl {INPUT} at (0,0) size 288x33 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (287,11) size 1x18 - RenderTextControl {INPUT} at (0,33) size 288x33 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 282x33 - RenderBlock {DIV} at (0,3) size 263x27 -layer at (14,117) size 106x10 - RenderBlock {DIV} at (3,3) size 106x10 -layer at (14,133) size 93x10 - RenderBlock {DIV} at (0,0) size 93x10 -layer at (14,149) size 118x11 - RenderBlock {DIV} at (3,3) size 118x11 -layer at (14,166) size 105x11 - RenderBlock {DIV} at (0,0) size 105x11 -layer at (14,183) size 129x12 - RenderBlock {DIV} at (3,3) size 130x12 -layer at (14,201) size 116x12 - RenderBlock {DIV} at (0,0) size 117x12 -layer at (14,219) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (14,238) size 128x13 - RenderBlock {DIV} at (0,0) size 128x13 -layer at (14,257) size 152x15 - RenderBlock {DIV} at (3,3) size 153x15 -layer at (14,278) size 139x15 - RenderBlock {DIV} at (0,0) size 140x15 -layer at (14,299) size 163x16 - RenderBlock {DIV} at (3,3) size 164x16 -layer at (14,321) size 148x16 - RenderBlock {DIV} at (0,0) size 149x16 -layer at (14,343) size 174x17 - RenderBlock {DIV} at (3,3) size 175x17 -layer at (14,366) size 159x17 - RenderBlock {DIV} at (0,0) size 160x17 -layer at (14,389) size 185x18 - RenderBlock {DIV} at (3,3) size 186x18 -layer at (14,413) size 170x18 - RenderBlock {DIV} at (0,0) size 171x18 -layer at (209,48) size 196x18 - RenderBlock {DIV} at (3,3) size 197x18 -layer at (209,72) size 181x18 - RenderBlock {DIV} at (0,0) size 182x18 -layer at (209,96) size 207x20 - RenderBlock {DIV} at (3,3) size 207x20 -layer at (209,122) size 192x20 - RenderBlock {DIV} at (0,0) size 192x20 -layer at (209,148) size 219x21 - RenderBlock {DIV} at (3,3) size 219x21 -layer at (209,175) size 200x21 - RenderBlock {DIV} at (0,0) size 200x21 -layer at (209,202) size 231x22 - RenderBlock {DIV} at (3,3) size 231x22 -layer at (209,230) size 212x22 - RenderBlock {DIV} at (0,0) size 212x22 -layer at (209,258) size 242x23 - RenderBlock {DIV} at (3,3) size 242x23 -layer at (209,287) size 223x23 - RenderBlock {DIV} at (0,0) size 223x23 -layer at (209,316) size 255x24 - RenderBlock {DIV} at (3,3) size 255x24 -layer at (209,346) size 236x24 - RenderBlock {DIV} at (0,0) size 236x24 -layer at (209,376) size 268x26 - RenderBlock {DIV} at (3,3) size 268x26 -layer at (209,408) size 249x26 - RenderBlock {DIV} at (0,0) size 249x26 -layer at (209,440) size 281x27 - RenderBlock {DIV} at (3,3) size 282x27 -layer at (209,473) size 262x27 - RenderBlock {DIV} at (0,0) size 263x27 -layer at (107,131) size 13x15 - RenderBlock (relative positioned) {DIV} at (92,0) size 14x15 -layer at (119,164) size 13x15 - RenderBlock (relative positioned) {DIV} at (104,0) size 14x15 -layer at (130,200) size 13x15 - RenderBlock (relative positioned) {DIV} at (116,0) size 14x15 -layer at (142,236) size 13x17 - RenderBlock (relative positioned) {DIV} at (127,0) size 14x17 -layer at (153,277) size 13x18 - RenderBlock (relative positioned) {DIV} at (139,0) size 14x18 -layer at (162,319) size 15x20 - RenderBlock (relative positioned) {DIV} at (148,0) size 16x20 -layer at (173,364) size 15x21 - RenderBlock (relative positioned) {DIV} at (159,0) size 16x21 -layer at (184,411) size 15x23 - RenderBlock (relative positioned) {DIV} at (170,0) size 16x23 -layer at (391,69) size 15x24 - RenderBlock (relative positioned) {DIV} at (181,0) size 16x24 -layer at (401,119) size 15x26 - RenderBlock (relative positioned) {DIV} at (191,0) size 16x26 -layer at (409,172) size 19x27 - RenderBlock (relative positioned) {DIV} at (199,0) size 20x27 -layer at (421,227) size 19x28 - RenderBlock (relative positioned) {DIV} at (211,-1) size 20x30 -layer at (432,284) size 19x30 - RenderBlock (relative positioned) {DIV} at (222,-1) size 20x31 -layer at (445,342) size 19x32 - RenderBlock (relative positioned) {DIV} at (235,-1) size 20x32 -layer at (458,405) size 19x33 - RenderBlock (relative positioned) {DIV} at (248,-1) size 20x34 -layer at (472,469) size 19x35 - RenderBlock (relative positioned) {DIV} at (262,-1) size 20x35 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-spinbutton-up-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-spinbutton-up-expected.txt deleted file mode 100644 index 494920be1fc8e..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-spinbutton-up-expected.txt +++ /dev/null @@ -1,22 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 439x18 - text run at (0,0) width 439: "Test appearances of outer-spin-button with its up button highlighted." - RenderBlock {DIV} at (0,34) size 784x0 - RenderBlock (anonymous) at (0,34) size 784x27 - RenderTextControl {INPUT} at (0,0) size 225x27 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 219x27 - RenderBlock {DIV} at (0,3) size 200x21 - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,45) size 200x21 - RenderBlock {DIV} at (0,0) size 200x21 - RenderText {#text} at (0,0) size 8x21 - text run at (0,0) width 8: "1" -layer at (211,42) size 19x27 - RenderBlock (relative positioned) {DIV} at (199,0) size 20x27 -caret: position 1 of child 0 {#text} of child 0 {DIV} of child 0 {DIV} of child 0 {DIV} of {#document-fragment} of child 5 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-visibility-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-visibility-expected.txt deleted file mode 100644 index fb0f46bcd9739..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-visibility-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x18 - RenderText {#text} at (0,0) size 491x18 - text run at (0,0) width 491: "This tests that the value becomes visible when the text field becomes visible." - RenderBlock {P} at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,69) size 784x0 - RenderBlock {P} at (0,69) size 784x0 -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 63x13 - text run at (0,0) width 63: "Test Passed" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-width-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-width-expected.txt deleted file mode 100644 index bb3ccabe124cc..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-appearance-width-expected.txt +++ /dev/null @@ -1,36 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 352x18 - text run at (0,0) width 352: "This tests that the new text fields use the correct width." - RenderBR {BR} at (351,0) size 1x18 - RenderTextControl {INPUT} at (0,18) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,18) size 1x18 - RenderTextControl {INPUT} at (0,37) size 200x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (200,37) size 0x18 - RenderTextControl {INPUT} at (0,56) size 357x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (356,56) size 1x18 - RenderTextControl {INPUT} at (0,75) size 200x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (200,75) size 0x18 - RenderTextControl {INPUT} at (0,94) size 77x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (76,94) size 1x18 -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (11,48) size 194x13 - RenderBlock {DIV} at (3,3) size 194x13 - RenderText {#text} at (0,0) size 101x13 - text run at (0,0) width 101: "styled width 200px" -layer at (11,67) size 351x13 - RenderBlock {DIV} at (3,3) size 351x13 - RenderText {#text} at (0,0) size 38x13 - text run at (0,0) width 38: "size 50" -layer at (11,86) size 194x13 - RenderBlock {DIV} at (3,3) size 194x13 - RenderText {#text} at (0,0) size 155x13 - text run at (0,0) width 155: "styled width 200px & size=10" -layer at (11,105) size 71x13 - RenderBlock {DIV} at (3,3) size 71x13 - RenderText {#text} at (0,0) size 37x13 - text run at (0,0) width 37: "size 10" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-baseline-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-baseline-expected.txt deleted file mode 100644 index 00619b46f7b36..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-baseline-expected.txt +++ /dev/null @@ -1,21 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 298x18 - text run at (0,0) width 298: "This tests that text fields get the right baseline." - RenderBR {BR} at (297,0) size 1x18 - RenderBR {BR} at (0,18) size 0x18 - RenderTextControl {INPUT} at (0,36) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,36) size 431x18 - text run at (146,36) width 431: "This text should line up with the bottom of the text in the text field." - RenderBR {BR} at (576,36) size 1x18 - RenderBR {BR} at (0,55) size 0x18 - RenderTextControl {INPUT} at (0,73) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,73) size 431x18 - text run at (146,73) width 431: "This text should line up with the bottom of the text in the text field." -layer at (11,47) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (11,84) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-disabled-color-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-disabled-color-expected.txt deleted file mode 100644 index 7bffa8b32f5cc..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-disabled-color-expected.txt +++ /dev/null @@ -1,190 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 521x18 - text run at (0,0) width 521: "This tests that the text color changes appropriately when the text field is disabled." - RenderBR {BR} at (520,0) size 1x18 - RenderTextControl {INPUT} at (0,18) size 146x19 [color=color(srgb 0.341176 0.341176 0.341176)] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (145,18) size 5x18 - text run at (145,18) width 5: " " - RenderTextControl {INPUT} at (149,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (296,18) size 1x18 - RenderTextControl {INPUT} at (0,37) size 146x19 [color=#FF0000] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (145,37) size 5x18 - text run at (145,37) width 5: " " - RenderTextControl {INPUT} at (149,37) size 148x19 [color=#FF0000] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (296,37) size 1x18 - RenderTextControl {INPUT} at (0,56) size 146x19 [color=color(srgb 0.341176 0.341176 0.341176)] [bgcolor=#0000FF] [border: (2px inset #808080)] - RenderText {#text} at (145,56) size 5x18 - text run at (145,56) width 5: " " - RenderTextControl {INPUT} at (149,56) size 148x19 [bgcolor=#0000FF] [border: (2px inset #808080)] - RenderBR {BR} at (296,56) size 1x18 - RenderTextControl {INPUT} at (0,75) size 146x19 [color=#FF0000] [bgcolor=#0000FF] [border: (2px inset #808080)] - RenderText {#text} at (145,75) size 5x18 - text run at (145,75) width 5: " " - RenderTextControl {INPUT} at (149,75) size 148x19 [color=#FF0000] [bgcolor=#0000FF] [border: (2px inset #808080)] - RenderBR {BR} at (296,75) size 1x18 - RenderTextControl {INPUT} at (0,94) size 146x19 [color=color(srgb 0.341176 0.341176 0.341176)] [bgcolor=#000000] [border: (2px inset #808080)] - RenderText {#text} at (145,94) size 5x18 - text run at (145,94) width 5: " " - RenderTextControl {INPUT} at (149,94) size 148x19 [bgcolor=#000000] [border: (2px inset #808080)] - RenderBR {BR} at (296,94) size 1x18 - RenderTextControl {INPUT} at (0,113) size 146x19 [color=#FFFFFF] [bgcolor=#000000] [border: (2px inset #808080)] - RenderText {#text} at (145,113) size 5x18 - text run at (145,113) width 5: " " - RenderTextControl {INPUT} at (149,113) size 148x19 [color=#FFFFFF] [bgcolor=#000000] [border: (2px inset #808080)] - RenderBR {BR} at (296,113) size 1x18 - RenderTextControl {INPUT} at (0,132) size 146x19 [color=color(srgb 0.341176 0.341176 0.341176)] [bgcolor=#808080] [border: (2px inset #808080)] - RenderText {#text} at (145,132) size 5x18 - text run at (145,132) width 5: " " - RenderTextControl {INPUT} at (149,132) size 148x19 [bgcolor=#808080] [border: (2px inset #808080)] - RenderBR {BR} at (296,132) size 1x18 - RenderTextControl {INPUT} at (0,151) size 146x19 [color=#FFFFFF] [bgcolor=#A9A9A9] [border: (2px inset #808080)] - RenderText {#text} at (145,151) size 5x18 - text run at (145,151) width 5: " " - RenderTextControl {INPUT} at (149,151) size 148x19 [color=#FFFFFF] [bgcolor=#A9A9A9] [border: (2px inset #808080)] - RenderBR {BR} at (296,151) size 1x18 - RenderTextControl {INPUT} at (0,170) size 146x19 [color=#808080] [bgcolor=#000000] [border: (2px inset #808080)] - RenderText {#text} at (145,170) size 5x18 - text run at (145,170) width 5: " " - RenderTextControl {INPUT} at (149,170) size 148x19 [color=#808080] [bgcolor=#000000] [border: (2px inset #808080)] - RenderBR {BR} at (296,170) size 1x18 - RenderTextControl {INPUT} at (0,189) size 146x19 [color=#FF0000] [bgcolor=#808080] [border: (2px inset #808080)] - RenderText {#text} at (145,189) size 5x18 - text run at (145,189) width 5: " " - RenderTextControl {INPUT} at (149,189) size 148x19 [color=#FF0000] [bgcolor=#808080] [border: (2px inset #808080)] - RenderBR {BR} at (296,189) size 1x18 - RenderTextControl {INPUT} at (0,208) size 146x19 [color=#808080] [bgcolor=#FF0000] [border: (2px inset #808080)] - RenderText {#text} at (145,208) size 5x18 - text run at (145,208) width 5: " " - RenderTextControl {INPUT} at (149,208) size 148x19 [color=#808080] [bgcolor=#FF0000] [border: (2px inset #808080)] - RenderBR {BR} at (296,208) size 1x18 - RenderTextControl {INPUT} at (0,227) size 146x19 [color=#FF0000] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (145,227) size 5x18 - text run at (145,227) width 5: " " - RenderTextControl {INPUT} at (149,227) size 148x19 [color=#FF0000] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (296,227) size 1x18 - RenderTextControl {INPUT} at (0,246) size 146x19 [color=#FF0000] [border: (2px inset #808080)] - RenderText {#text} at (145,246) size 5x18 - text run at (145,246) width 5: " " - RenderTextControl {INPUT} at (149,246) size 148x19 [color=#FF0000] [border: (2px inset #808080)] - RenderBR {BR} at (296,246) size 1x18 - RenderTextControl {INPUT} at (0,265) size 146x19 [color=#ACACAC] [bgcolor=#F2F2F2] [border: (2px inset #808080)] - RenderText {#text} at (145,265) size 5x18 - text run at (145,265) width 5: " " - RenderTextControl {INPUT} at (149,265) size 148x19 [color=#ACACAC] [bgcolor=#F2F2F2] [border: (2px inset #808080)] - RenderBR {BR} at (296,265) size 1x18 -layer at (11,29) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,29) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,48) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,48) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,67) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,67) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,86) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,86) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,105) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,105) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,124) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,124) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,143) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,143) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,162) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,162) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,181) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,181) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,200) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,200) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,219) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,219) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,238) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,238) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,257) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,257) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" -layer at (11,276) size 140x13 scrollWidth 343 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (0,0) size 344x13 - text run at (0,0) width 344: "The text in this disabled field should displayed as dimmed or grey" -layer at (161,276) size 141x13 scrollWidth 152 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 151x13 - text run at (0,0) width 151: "This text field is not disabled" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-double-click-selection-gap-bug-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-double-click-selection-gap-bug-expected.txt deleted file mode 100644 index 31592204b50ab..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-double-click-selection-gap-bug-expected.txt +++ /dev/null @@ -1,31 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x546 - RenderBlock {HTML} at (0,0) size 800x546 - RenderBody {BODY} at (8,16) size 784x522 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 421x18 - text run at (0,0) width 331: "The top table was resized while the field\x{2019}s contents " - text run at (330,0) width 91: "were selected." - RenderTable {TABLE} at (0,34) size 191x244 - RenderTableSection {TBODY} at (0,0) size 191x244 - RenderTableRow {TR} at (0,2) size 191x240 - RenderTableCell {TD} at (2,92) size 187x60 [bgcolor=#90EE90] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (20,110) size 147x20 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderTable {TABLE} at (0,278) size 191x244 - RenderTableSection {TBODY} at (0,0) size 191x244 - RenderTableRow {TR} at (0,2) size 191x240 - RenderTableCell {TD} at (2,92) size 187x60 [bgcolor=#90EE90] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (20,110) size 147x20 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (33,166) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 38x13 - text run at (0,0) width 38: "foo bar" -layer at (33,410) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 38x13 - text run at (0,0) width 38: "foo bar" -selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body -selection end: position 7 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-placeholder-visibility-1-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-placeholder-visibility-1-expected.txt deleted file mode 100644 index 232d8411978fa..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-placeholder-visibility-1-expected.txt +++ /dev/null @@ -1,19 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 347x18 - text run at (0,0) width 347: "Focus the field, focus away, then focus the field again." - RenderBlock {DIV} at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "Placeholder" -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 0 of child 1 {DIV} of {#document-fragment} of child 1 {INPUT} of child 3 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-placeholder-visibility-3-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-placeholder-visibility-3-expected.txt deleted file mode 100644 index 23f867c9f2366..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-placeholder-visibility-3-expected.txt +++ /dev/null @@ -1,20 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 390x18 - text run at (0,0) width 390: "Focus field with a placeholder, then type, then delete all text." - RenderBlock {DIV} at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "Placeholder" -layer at (11,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderBR {BR} at (0,0) size 0x13 -caret: position 0 of child 0 {BR} of child 1 {DIV} of {#document-fragment} of child 1 {INPUT} of child 3 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-spaces-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-spaces-expected.txt deleted file mode 100644 index c9198e5951ddc..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-spaces-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 769x36 - text run at (0,0) width 769: "This tests that leading and trailing spaces in a text field don't get lost. There should be 3 spaces before and 3 spaces after" - text run at (0,18) width 124: "the text in the field." - RenderBR {BR} at (123,18) size 1x18 - RenderTextControl {INPUT} at (0,36) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,47) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 57x13 - text run at (0,0) width 57: " foo bar " diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-table-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-table-expected.txt deleted file mode 100644 index f8b2afaf0ea0c..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-table-expected.txt +++ /dev/null @@ -1,98 +0,0 @@ -layer at (0,0) size 785x677 - RenderView at (0,0) size 785x600 -layer at (0,0) size 785x677 - RenderBlock {HTML} at (0,0) size 785x677 - RenderBody {BODY} at (8,8) size 769x661 - RenderBlock (anonymous) at (0,0) size 769x18 - RenderText {#text} at (0,0) size 252x18 - text run at (0,0) width 252: "This tests minMaxWidth for text fields." - RenderBlock {P} at (0,34) size 769x18 - RenderText {#text} at (0,0) size 70x18 - text run at (0,0) width 70: "Test case 1" - RenderTable {TABLE} at (0,68) size 118x37 [border: (3px solid #0000FF)] - RenderTableSection {TBODY} at (3,3) size 112x31 - RenderTableRow {TR} at (0,2) size 112x27 - RenderTableCell {TD} at (2,2) size 108x27 [border: (3px solid #FF0000)] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (4,4) size 100x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,121) size 769x18 - RenderText {#text} at (0,0) size 70x18 - text run at (0,0) width 70: "Test case 2" - RenderTable {TABLE} at (0,155) size 167x66 [border: (3px solid #0000FF)] - RenderTableSection {TBODY} at (3,3) size 161x60 - RenderTableRow {TR} at (0,2) size 161x27 - RenderTableCell {TD} at (2,5) size 47x21 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,4) size 25x19 - text run at (1,1) width 25: "first" - RenderTableCell {TD} at (50,2) size 109x27 [border: (3px solid #FF0000)] [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (4,4) size 100x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {TR} at (0,31) size 161x27 - RenderTableCell {TD} at (2,34) size 47x21 [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (1,4) size 45x19 - text run at (1,1) width 45: "second" - RenderTableCell {TD} at (50,31) size 109x27 [border: (3px solid #FF0000)] [r=1 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (4,4) size 100x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,237) size 769x18 - RenderText {#text} at (0,0) size 70x18 - text run at (0,0) width 70: "Test case 3" - RenderTable {TABLE} at (0,271) size 55x73 [border: (3px solid #0000FF)] - RenderTableSection {TBODY} at (3,3) size 49x67 - RenderTableRow {TR} at (0,2) size 49x63 - RenderTableCell {TD} at (2,2) size 45x63 [border: (3px solid #FF0000)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (4,4) size 37x36 - text run at (4,4) width 37: "width" - text run at (4,22) width 32: "30px" - RenderTextControl {INPUT} at (4,40) size 30x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,360) size 769x18 - RenderText {#text} at (0,0) size 70x18 - text run at (0,0) width 70: "Test case 4" - RenderTable {TABLE} at (0,394) size 218x65 [border: (3px solid #0000FF)] - RenderTableSection {TBODY} at (3,3) size 212x59 - RenderTableRow {TR} at (0,2) size 212x27 - RenderTableCell {TD} at (2,2) size 208x27 [border: (3px solid #FF0000)] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (4,4) size 200x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {TR} at (0,31) size 212x26 - RenderTableCell {TD} at (2,31) size 208x26 [border: (3px solid #FF0000)] [r=1 c=0 rs=1 cs=1] - RenderBlock {DIV} at (4,4) size 200x18 - RenderText {#text} at (0,0) size 40x18 - text run at (0,0) width 40: "200px" - RenderBlock {P} at (0,475) size 769x18 - RenderText {#text} at (0,0) size 70x18 - text run at (0,0) width 70: "Test case 5" - RenderTable {TABLE} at (0,509) size 88x37 [border: (3px solid #0000FF)] - RenderTableSection {TBODY} at (3,3) size 82x31 - RenderTableRow {TR} at (0,2) size 82x27 - RenderTableCell {TD} at (2,2) size 78x27 [border: (3px solid #FF0000)] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (4,4) size 70x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,562) size 769x18 - RenderText {#text} at (0,0) size 70x18 - text run at (0,0) width 70: "Test case 6" - RenderTable {TABLE} at (0,596) size 165x65 [border: (3px solid #0000FF)] - RenderTableSection {TBODY} at (3,3) size 159x59 - RenderTableRow {TR} at (0,2) size 159x27 - RenderTableCell {TD} at (2,2) size 155x27 [border: (3px solid #FF0000)] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (4,4) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {TR} at (0,31) size 159x26 - RenderTableCell {TD} at (2,31) size 155x26 [border: (3px solid #FF0000)] [r=1 c=0 rs=1 cs=1] - RenderBlock {DIV} at (4,4) size 70x18 - RenderText {#text} at (0,0) size 32x18 - text run at (0,0) width 32: "70px" -layer at (20,88) size 94x13 - RenderBlock {DIV} at (3,3) size 94x13 -layer at (68,175) size 94x13 - RenderBlock {DIV} at (3,3) size 94x13 -layer at (68,204) size 94x13 - RenderBlock {DIV} at (3,3) size 94x13 -layer at (20,327) size 24x13 - RenderBlock {DIV} at (3,3) size 24x13 -layer at (20,414) size 194x13 - RenderBlock {DIV} at (3,3) size 194x13 - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "width 100%" -layer at (20,529) size 64x13 - RenderBlock {DIV} at (3,3) size 64x13 - RenderText {#text} at (0,0) size 51x13 - text run at (0,0) width 51: "max 70px" -layer at (20,616) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 88x13 - text run at (0,0) width 88: "min-width 100px" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-text-click-inside-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-text-click-inside-expected.txt deleted file mode 100644 index 4563c018c70cd..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-text-click-inside-expected.txt +++ /dev/null @@ -1,14 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {DIV} at (0,0) size 425x75 [bgcolor=#FFFF00] - RenderTextControl {INPUT} at (25,25) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,91) size 784x36 - RenderText {#text} at (0,0) size 759x36 - text run at (0,0) width 759: "This test clicks inside an input element, and must result in the element receiving focus. If the test succeeds the element" - text run at (0,18) width 161: "should have a focus ring." -layer at (36,36) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 0 of child 0 {DIV} of {#document-fragment} of child 0 {INPUT} of child 0 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-text-click-outside-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-text-click-outside-expected.txt deleted file mode 100644 index 838a72181dc6f..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-text-click-outside-expected.txt +++ /dev/null @@ -1,14 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {DIV} at (0,0) size 425x75 [bgcolor=#FFFF00] - RenderTextControl {INPUT} at (25,25) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,91) size 784x36 - RenderText {#text} at (0,0) size 737x36 - text run at (0,0) width 737: "This test clicks outside an input element, and must not result in the element receiving focus. If the test succeeds the" - text run at (0,18) width 240: "element should not have a focus ring." -layer at (36,36) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 1 of child 0 {INPUT} of child 0 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-text-double-click-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-text-double-click-expected.txt deleted file mode 100644 index 156505771dbaa..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-text-double-click-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,35) size 784x18 - RenderText {#text} at (0,0) size 575x18 - text run at (0,0) width 575: "Tests double-clicking on a word. If the test succeeds, the word \"word\" should be selected." -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 70x13 - text run at (0,0) width 70: "word another" -selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 0 {INPUT} of body -selection end: position 4 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 0 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-text-drag-down-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-text-drag-down-expected.txt deleted file mode 100644 index 627abc804c065..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-text-drag-down-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,35) size 784x18 - RenderText {#text} at (0,0) size 748x18 - text run at (0,0) width 748: "Tests drag-selecting down. If the test succeeds, the text from the center to the end of the text field should be selected." -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 120x13 - text run at (0,0) width 120: "This is a bunch of text." -selection start: position 8 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 0 {INPUT} of body -selection end: position 24 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 0 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-text-option-delete-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-text-option-delete-expected.txt deleted file mode 100644 index c82fb22c4b953..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-text-option-delete-expected.txt +++ /dev/null @@ -1,16 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,35) size 784x18 - RenderText {#text} at (0,0) size 654x18 - text run at (0,0) width 654: "Tests option-deleting a word. If the test succeeds, the word \"word\" should end up with a space after it." -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 30x13 - text run at (0,0) width 30: "word " -caret: position 5 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 0 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-text-scroll-left-on-blur-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-text-scroll-left-on-blur-expected.txt deleted file mode 100644 index e056592cae521..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-text-scroll-left-on-blur-expected.txt +++ /dev/null @@ -1,61 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,0) size 5x18 - text run at (146,0) width 5: " " - RenderTextControl {INPUT} at (150,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (296,0) size 5x18 - text run at (296,0) width 5: " " - RenderTextControl {INPUT} at (300,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,35) size 784x36 - RenderText {#text} at (0,0) size 765x36 - text run at (0,0) width 765: "Tests scrolling back to the beginning when a text field blurs. The first field should be scrolled to the left, the second and" - text run at (0,18) width 164: "third scrolled to the right." -layer at (11,11) size 141x13 scrollWidth 306 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 306x13 - text run at (0,0) width 306: "this text field has a lot of text in it so that it needs to scroll" -layer at (162,11) size 140x13 scrollX 165 scrollWidth 305 - RenderBlock {DIV} at (3,3) size 140x13 - RenderText {#text} at (-166,0) size 306x13 - text run at (-165,0) width 20: "this" - text run at (-145,0) width 3: " " - text run at (-142,0) width 20: "text" - text run at (-122,0) width 3: " " - text run at (-119,0) width 23: "field" - text run at (-96,0) width 3: " " - text run at (-93,0) width 18: "has" - text run at (-75,0) width 4: " " - text run at (-71,0) width 6: "a" - text run at (-65,0) width 3: " " - text run at (-62,0) width 13: "lot" - text run at (-49,0) width 3: " " - text run at (-46,0) width 11: "of" - text run at (-35,0) width 3: " " - text run at (-32,0) width 20: "text" - text run at (-12,0) width 3: " " - text run at (-9,0) width 10: "in" - text run at (0,0) width 4: " " - text run at (3,0) width 8: "it" - text run at (10,0) width 4: " " - text run at (13,0) width 13: "so" - text run at (25,0) width 4: " " - text run at (28,0) width 22: "that" - text run at (49,0) width 4: " " - text run at (52,0) width 8: "it" - text run at (59,0) width 4: " " - text run at (62,0) width 33: "needs" - text run at (94,0) width 4: " " - text run at (97,0) width 12: "to" - text run at (108,0) width 4: " " - text run at (111,0) width 29: "scroll" -layer at (312,11) size 141x13 scrollX 165 scrollWidth 306 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 306x13 - text run at (0,0) width 306: "this text field has a lot of text in it so that it needs to scroll" -caret: position 66 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 4 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-text-self-emptying-click-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-text-self-emptying-click-expected.txt deleted file mode 100644 index 18968c6413e59..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-text-self-emptying-click-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,35) size 784x36 - RenderText {#text} at (0,0) size 778x36 - text run at (0,0) width 778: "Tests clicking on an input element that has a value that self-destructs. If the test succeeds, there should be a blinking caret" - text run at (0,18) width 101: "in the text field." -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 0 of child 0 {DIV} of {#document-fragment} of child 0 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-text-word-wrap-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-text-word-wrap-expected.txt deleted file mode 100644 index cdb5ea48a679c..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-text-word-wrap-expected.txt +++ /dev/null @@ -1,20 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 117x18 - text run at (0,0) width 117: "This tests that the " - RenderInline {CODE} at (116,2) size 71x15 - RenderText {#text} at (116,2) size 71x15 - text run at (116,2) width 71: "word-wrap" - RenderText {#text} at (186,0) size 309x18 - text run at (186,0) width 309: " property is ignored for single-line text controls." - RenderBlock (anonymous) at (0,34) size 784x33 - RenderTextControl {INPUT} at (0,0) size 147x33 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,52) size 141x13 scrollWidth 255 - RenderBlock {DIV} at (3,10) size 141x13 - RenderText {#text} at (0,0) size 255x13 - text run at (0,0) width 255: "This sentence should not wrap into the next line." diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-type-text-min-width-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-type-text-min-width-expected.txt deleted file mode 100644 index 07d02aa31514b..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-type-text-min-width-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 783x36 - text run at (0,0) width 783: "This test checks if correct min width is applied to \"input type=text\". To match IE and Firefox, the input field below should" - text run at (0,18) width 624: "show \"1987\", with the 7 slightly truncated. See https://bugs.webkit.org/show_bug.cgi?id=15312 ." - RenderBR {BR} at (623,18) size 1x18 - RenderTextControl {INPUT} at (0,36) size 14x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,47) size 8x13 scrollWidth 40 - RenderBlock {DIV} at (3,3) size 8x13 - RenderText {#text} at (0,0) size 40x13 - text run at (0,0) width 40: "198765" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-value-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-value-expected.txt deleted file mode 100644 index 3a04c3f59361d..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-value-expected.txt +++ /dev/null @@ -1,225 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 765x36 - text run at (0,0) width 765: "Results that match WinIE are two columns on the right that say \"after\" every time, except for the last row which should" - text run at (0,18) width 196: "have nothing in either column." - RenderBlock {P} at (0,52) size 784x18 - RenderText {#text} at (0,0) size 725x18 - text run at (0,0) width 725: "Results that match Gecko are like WinIE, but with \"before\" for the attribute in the first two rows and the last row." - RenderBlock {FORM} at (0,96) size 784x337 - RenderTable {TABLE} at (0,0) size 766x337 - RenderTableSection {THEAD} at (0,0) size 766x24 - RenderTableRow {TR} at (0,2) size 766x20 - RenderTableCell {TH} at (2,2) size 392x20 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 57x18 - text run at (1,1) width 57: "test case" - RenderTableCell {TH} at (395,2) size 241x20 [r=0 c=1 rs=1 cs=1] - RenderText {#text} at (1,1) size 92x18 - text run at (1,1) width 92: "form element" - RenderTableCell {TH} at (637,2) size 63x20 [r=0 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 61x18 - text run at (1,1) width 61: "property" - RenderTableCell {TH} at (701,2) size 63x20 [r=0 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 61x18 - text run at (1,1) width 61: "attribute" - RenderTableSection {TBODY} at (0,24) size 766x313 - RenderTableRow {TR} at (0,0) size 766x21 - RenderTableCell {TD} at (2,0) size 392x21 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 211x19 - text run at (1,1) width 211: "text with value property changed" - RenderTableCell {TD} at (395,0) size 241x21 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableCell {TD} at (637,0) size 63x21 [r=0 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x19 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,0) size 63x21 [r=0 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 41x19 - text run at (1,1) width 41: "before" - RenderTableRow {TR} at (0,23) size 766x21 - RenderTableCell {TD} at (2,23) size 392x21 [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 248x19 - text run at (1,1) width 248: "password with value property changed" - RenderTableCell {TD} at (395,23) size 241x21 [r=1 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderTableCell {TD} at (637,23) size 63x21 [r=1 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x19 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,23) size 63x21 [r=1 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 41x19 - text run at (1,1) width 41: "before" - RenderTableRow {TR} at (0,46) size 766x20 - RenderTableCell {TD} at (2,46) size 392x20 [r=2 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 252x18 - text run at (1,1) width 252: "check box with value property changed" - RenderTableCell {TD} at (395,46) size 241x20 [r=2 c=1 rs=1 cs=1] - RenderBlock {INPUT} at (3,4) size 12x12 - RenderTableCell {TD} at (637,46) size 63x20 [r=2 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,46) size 63x20 [r=2 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,68) size 766x20 - RenderTableCell {TD} at (2,68) size 392x20 [r=3 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 231x18 - text run at (1,1) width 231: "hidden with value property changed" - RenderTableCell {TD} at (395,77) size 241x2 [r=3 c=1 rs=1 cs=1] - RenderTableCell {TD} at (637,68) size 63x20 [r=3 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,68) size 63x20 [r=3 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,90) size 766x20 - RenderTableCell {TD} at (2,90) size 392x20 [r=4 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 228x18 - text run at (1,1) width 228: "button with value property changed" - RenderTableCell {TD} at (395,90) size 241x20 [r=4 c=1 rs=1 cs=1] - RenderButton {INPUT} at (1,1) size 41x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 25x13 - RenderText at (0,0) size 25x13 - text run at (0,0) width 25: "after" - RenderTableCell {TD} at (637,90) size 63x20 [r=4 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,90) size 63x20 [r=4 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,112) size 766x20 - RenderTableCell {TD} at (2,112) size 392x20 [r=5 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 226x18 - text run at (1,1) width 226: "image with value property changed" - RenderTableCell {TD} at (395,112) size 241x20 [r=5 c=1 rs=1 cs=1] - RenderImage {INPUT} at (1,1) size 38x18 - RenderTableCell {TD} at (637,112) size 63x20 [r=5 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,112) size 63x20 [r=5 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,134) size 766x20 - RenderTableCell {TD} at (2,134) size 392x20 [r=6 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 220x18 - text run at (1,1) width 220: "radio with value property changed" - RenderTableCell {TD} at (395,134) size 241x20 [r=6 c=1 rs=1 cs=1] - RenderBlock {INPUT} at (3,4) size 12x12 - RenderTableCell {TD} at (637,134) size 63x20 [r=6 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,134) size 63x20 [r=6 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,156) size 766x21 - RenderTableCell {TD} at (2,156) size 392x21 [r=7 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 210x19 - text run at (1,1) width 210: "text with value attribute changed" - RenderTableCell {TD} at (395,156) size 241x21 [r=7 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableCell {TD} at (637,156) size 63x21 [r=7 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x19 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,156) size 63x21 [r=7 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x19 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,179) size 766x20 - RenderTableCell {TD} at (2,179) size 392x20 [r=8 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 252x18 - text run at (1,1) width 252: "check box with value attribute changed" - RenderTableCell {TD} at (395,179) size 241x20 [r=8 c=1 rs=1 cs=1] - RenderBlock {INPUT} at (3,4) size 12x12 - RenderTableCell {TD} at (637,179) size 63x20 [r=8 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,179) size 63x20 [r=8 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,201) size 766x20 - RenderTableCell {TD} at (2,201) size 392x20 [r=9 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 390x18 - text run at (1,1) width 390: "text with value property changed, then turned into check box" - RenderTableCell {TD} at (395,201) size 241x20 [r=9 c=1 rs=1 cs=1] - RenderBlock {INPUT} at (3,4) size 12x12 - RenderTableCell {TD} at (637,201) size 63x20 [r=9 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,201) size 63x20 [r=9 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,223) size 766x21 - RenderTableCell {TD} at (2,223) size 392x21 [r=10 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 390x19 - text run at (1,1) width 390: "check box with value property changed, then turned into text" - RenderTableCell {TD} at (395,223) size 241x21 [r=10 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableCell {TD} at (637,223) size 63x21 [r=10 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x19 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,223) size 63x21 [r=10 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x19 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,246) size 766x20 - RenderTableCell {TD} at (2,246) size 392x20 [r=11 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 389x18 - text run at (1,1) width 389: "text with value attribute changed, then turned into check box" - RenderTableCell {TD} at (395,246) size 241x20 [r=11 c=1 rs=1 cs=1] - RenderBlock {INPUT} at (3,4) size 12x12 - RenderTableCell {TD} at (637,246) size 63x20 [r=11 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,246) size 63x20 [r=11 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x18 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,268) size 766x21 - RenderTableCell {TD} at (2,268) size 392x21 [r=12 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 389x19 - text run at (1,1) width 389: "check box with value attribute changed, then turned into text" - RenderTableCell {TD} at (395,268) size 241x21 [r=12 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableCell {TD} at (637,268) size 63x21 [r=12 c=2 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x19 - text run at (1,1) width 30: "after" - RenderTableCell {TD} at (701,268) size 63x21 [r=12 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 30x19 - text run at (1,1) width 30: "after" - RenderTableRow {TR} at (0,291) size 766x20 - RenderTableCell {TD} at (2,291) size 392x20 [r=13 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 208x18 - text run at (1,1) width 208: "file with value property changed" - RenderTableCell {TD} at (395,291) size 241x20 [r=13 c=1 rs=1 cs=1] - RenderFileUploadControl {INPUT} at (1,1) size 238x18 "no file selected" - RenderButton {INPUT} at (0,0) size 78x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 62x13 - RenderText at (0,0) size 62x13 - text run at (0,0) width 62: "Choose File" - RenderTableCell {TD} at (637,300) size 63x2 [r=13 c=2 rs=1 cs=1] - RenderTableCell {TD} at (701,291) size 63x20 [r=13 c=3 rs=1 cs=1] - RenderText {#text} at (1,1) size 41x18 - text run at (1,1) width 41: "before" -layer at (8,94) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,86) size 784x2 [color=#808080] [border: (1px inset #808080)] -layer at (407,132) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 34x13 - text run at (0,0) width 34: "before" -layer at (407,155) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 42x13 - text run at (0,0) width 42: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}" -layer at (407,288) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 25x13 - text run at (0,0) width 25: "after" -layer at (407,355) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 25x13 - text run at (0,0) width 25: "after" -layer at (407,400) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 25x13 - text run at (0,0) width 25: "after" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/input-width-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/input-width-expected.txt deleted file mode 100644 index ff9f326ce9622..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/input-width-expected.txt +++ /dev/null @@ -1,9 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTextControl {INPUT} at (0,0) size 49x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,11) size 43x13 - RenderBlock {DIV} at (3,3) size 43x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/listbox-bidi-align-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/listbox-bidi-align-expected.txt deleted file mode 100644 index cebf36eff1550..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/listbox-bidi-align-expected.txt +++ /dev/null @@ -1,74 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x396 - RenderBlock {HTML} at (0,0) size 800x396 - RenderBody {BODY} at (8,8) size 784x380 - RenderBlock (anonymous) at (0,0) size 784x36 - RenderText {#text} at (0,0) size 614x18 - text run at (0,0) width 614: "This test verifies the visual alignment of items in a select element while changing text direction." - RenderBR {BR} at (613,0) size 1x18 - RenderText {#text} at (0,18) size 438x18 - text run at (0,18) width 438: "All the items in the following select elements should be left-aligned." - RenderTable {TABLE} at (0,36) size 642x96 - RenderTableSection {TBODY} at (0,0) size 642x96 - RenderTableRow {TR} at (0,2) size 642x45 - RenderTableCell {TD} at (2,2) size 153x45 [r=0 c=0 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 151x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (157,2) size 163x45 [r=0 c=1 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 161x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (322,2) size 153x45 [r=0 c=2 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 151x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (477,2) size 163x45 [r=0 c=3 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 161x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableRow {TR} at (0,49) size 642x45 - RenderTableCell {TD} at (2,49) size 153x45 [r=1 c=0 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 151x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (157,49) size 163x45 [r=1 c=1 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 161x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBlock (anonymous) at (0,132) size 784x18 - RenderText {#text} at (0,0) size 447x18 - text run at (0,0) width 447: "All the items in the following select elements should be right-aligned." - RenderTable {TABLE} at (0,150) size 632x96 - RenderTableSection {TBODY} at (0,0) size 632x96 - RenderTableRow {TR} at (0,2) size 632x45 - RenderTableCell {TD} at (2,2) size 160x45 [r=0 c=0 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 158x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (164,2) size 151x45 [r=0 c=1 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 149x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (317,2) size 160x45 [r=0 c=2 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 158x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (479,2) size 151x45 [r=0 c=3 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 149x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableRow {TR} at (0,49) size 632x45 - RenderTableCell {TD} at (2,49) size 160x45 [r=1 c=0 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 158x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (164,49) size 151x45 [r=1 c=1 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 149x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBlock (anonymous) at (0,246) size 784x18 - RenderText {#text} at (0,0) size 456x18 - text run at (0,0) width 456: "All the items in the following select elements should be center-aligned." - RenderTable {TABLE} at (0,264) size 672x49 - RenderTableSection {TBODY} at (0,0) size 672x49 - RenderTableRow {TR} at (0,2) size 672x45 - RenderTableCell {TD} at (2,2) size 170x45 [r=0 c=0 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 168x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (174,2) size 161x45 [r=0 c=1 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 159x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (337,2) size 170x45 [r=0 c=2 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 168x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (509,2) size 161x45 [r=0 c=3 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 159x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBlock (anonymous) at (0,313) size 784x18 - RenderText {#text} at (0,0) size 296x18 - text run at (0,0) width 296: "The following tables check mixed alignments." - RenderTable {TABLE} at (0,331) size 718x49 - RenderTableSection {TBODY} at (0,0) size 718x49 - RenderTableRow {TR} at (0,2) size 718x45 - RenderTableCell {TD} at (2,2) size 165x45 [r=0 c=0 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 163x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (169,2) size 165x45 [r=0 c=1 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 163x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (336,2) size 189x45 [r=0 c=2 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 187x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderTableCell {TD} at (527,2) size 189x45 [r=0 c=3 rs=1 cs=1] - RenderListBox {SELECT} at (1,1) size 187x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] diff --git a/LayoutTests/platform/mac-ventura/fast/forms/minWidthPercent-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/minWidthPercent-expected.txt deleted file mode 100644 index 82b8468aa303f..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/minWidthPercent-expected.txt +++ /dev/null @@ -1,16 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DIV} at (0,0) size 120x25 [bgcolor=#C3D9FF] - RenderTable {TABLE} at (0,0) size 120x25 - RenderTableSection {TBODY} at (0,0) size 120x25 - RenderTableRow {TR} at (0,2) size 120x21 - RenderTableCell {TD} at (2,2) size 116x21 [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 114x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (14,14) size 107x13 scrollWidth 112 - RenderBlock {DIV} at (3,3) size 108x13 - RenderText {#text} at (0,0) size 111x13 - text run at (0,0) width 111: "Should fit in blue box" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-rtl-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-rtl-expected.txt deleted file mode 100644 index e154200ee3fe4..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-rtl-expected.txt +++ /dev/null @@ -1,97 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x304 - RenderBlock {HTML} at (0,0) size 800x304 - RenderBody {BODY} at (8,16) size 784x272 - RenderBlock {P} at (0,0) size 784x20 - RenderTextControl {INPUT} at (638,1) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 140x17 - RenderBlock {DIV} at (13,1) size 127x14 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,36) size 784x20 - RenderTextControl {INPUT} at (638,1) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 140x17 - RenderBlock {DIV} at (13,1) size 127x14 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,72) size 784x20 - RenderTextControl {INPUT} at (0,1) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 140x17 - RenderBlock {DIV} at (13,1) size 127x14 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,108) size 784x20 - RenderTextControl {INPUT} at (0,1) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 140x17 - RenderBlock {DIV} at (13,1) size 127x14 - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,144) size 784x20 - RenderTextControl {INPUT} at (0,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 141x17 - RenderBlock {DIV} at (0,1) size 128x14 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,180) size 784x20 - RenderTextControl {INPUT} at (0,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 141x17 - RenderBlock {DIV} at (0,1) size 128x14 - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,216) size 784x20 - RenderTextControl {INPUT} at (0,1) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 140x17 - RenderBlock {DIV} at (13,1) size 127x14 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,252) size 784x20 - RenderTextControl {INPUT} at (0,1) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 140x17 - RenderBlock {DIV} at (13,1) size 127x14 - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (662,20) size 127x13 - RenderBlock {DIV} at (0,0) size 127x13 - RenderText {#text} at (121,0) size 6x13 - text run at (121,0) width 6: "1" -layer at (662,56) size 127x13 - RenderBlock {DIV} at (0,0) size 127x13 - RenderText {#text} at (120,0) size 7x13 - text run at (120,0) width 7: "2" -layer at (24,92) size 127x13 - RenderBlock {DIV} at (0,0) size 127x13 - RenderText {#text} at (119,0) size 8x13 - text run at (119,0) width 8: "3" -layer at (24,128) size 127x13 - RenderBlock {DIV} at (0,0) size 127x13 - RenderText {#text} at (100,0) size 27x13 - text run at (100,0) width 27: "1234" -layer at (11,164) size 128x13 - RenderBlock {DIV} at (0,0) size 128x13 - RenderText {#text} at (0,0) size 7x13 - text run at (0,0) width 7: "5" -layer at (11,200) size 128x13 - RenderBlock {DIV} at (0,0) size 128x13 - RenderText {#text} at (0,0) size 8x13 - text run at (0,0) width 8: "6" -layer at (24,236) size 127x13 - RenderBlock {DIV} at (0,0) size 127x13 - RenderText {#text} at (120,0) size 7x13 - text run at (120,0) width 7: "7" -layer at (24,272) size 127x13 - RenderBlock {DIV} at (0,0) size 127x13 - RenderText {#text} at (119,0) size 8x13 - text run at (119,0) width 8: "8" -layer at (649,18) size 13x17 - RenderBlock (relative positioned) {DIV} at (0,0) size 13x17 -layer at (649,54) size 13x17 - RenderBlock (relative positioned) {DIV} at (0,0) size 13x17 -layer at (11,90) size 13x17 - RenderBlock (relative positioned) {DIV} at (0,0) size 13x17 -layer at (11,126) size 13x17 - RenderBlock (relative positioned) {DIV} at (0,0) size 13x17 -layer at (139,162) size 13x17 - RenderBlock (relative positioned) {DIV} at (127,0) size 14x17 -layer at (139,198) size 13x17 - RenderBlock (relative positioned) {DIV} at (127,0) size 14x17 -layer at (11,234) size 13x17 - RenderBlock (relative positioned) {DIV} at (0,0) size 13x17 -layer at (11,270) size 13x17 - RenderBlock (relative positioned) {DIV} at (0,0) size 13x17 -caret: position 4 of child 0 {#text} of child 0 {DIV} of child 0 {DIV} of child 0 {DIV} of {#document-fragment} of child 0 {INPUT} of child 6 {P} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt deleted file mode 100644 index 5cbd6ab05e43d..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt +++ /dev/null @@ -1,48 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 762x36 - text run at (0,0) width 762: "Test appearances of spin buttons. Disabled state and read-only state should have appearances different from the normal" - text run at (0,18) width 34: "state." - RenderBlock {DIV} at (0,52) size 784x29 - RenderInline {LABEL} at (0,8) size 334x18 - RenderTextControl {INPUT} at (0,0) size 248x29 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 242x29 - RenderBlock {DIV} at (0,3) size 223x23 - RenderText {#text} at (247,8) size 87x18 - text run at (247,8) width 87: " Normal state" - RenderBlock {DIV} at (0,81) size 784x29 - RenderInline {LABEL} at (0,8) size 341x18 - RenderTextControl {INPUT} at (0,0) size 247x29 [color=color(srgb 0.341176 0.341176 0.341176)] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 241x29 - RenderBlock {DIV} at (0,3) size 222x23 - RenderText {#text} at (246,8) size 95x18 - text run at (246,8) width 95: " Disabled state" - RenderBlock {DIV} at (0,110) size 784x29 - RenderInline {LABEL} at (0,8) size 351x18 - RenderTextControl {INPUT} at (0,0) size 247x29 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 241x29 - RenderBlock {DIV} at (0,3) size 222x23 - RenderText {#text} at (246,8) size 105x18 - text run at (246,8) width 105: " Read-only state" -layer at (11,63) size 223x23 - RenderBlock {DIV} at (0,0) size 223x23 - RenderText {#text} at (0,0) size 13x23 - text run at (0,0) width 13: "0" -layer at (11,92) size 222x23 - RenderBlock {DIV} at (0,0) size 222x23 - RenderText {#text} at (0,0) size 13x23 - text run at (0,0) width 13: "0" -layer at (11,121) size 222x23 - RenderBlock {DIV} at (0,0) size 222x23 - RenderText {#text} at (0,0) size 13x23 - text run at (0,0) width 13: "0" -layer at (234,60) size 19x30 - RenderBlock (relative positioned) {DIV} at (222,-1) size 20x31 -layer at (233,89) size 19x30 - RenderBlock (relative positioned) {DIV} at (221,-1) size 20x31 -layer at (233,118) size 19x30 - RenderBlock (relative positioned) {DIV} at (221,-1) size 20x31 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-spinbutton-layer-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-spinbutton-layer-expected.txt deleted file mode 100644 index e35e7c7343f4f..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-spinbutton-layer-expected.txt +++ /dev/null @@ -1,26 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x56 - RenderBlock {HTML} at (0,0) size 800x56 - RenderBody {BODY} at (8,8) size 784x40 - RenderBR {BR} at (146,0) size 1x18 - RenderTextControl {INPUT} at (0,21) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 141x17 - RenderBlock {DIV} at (0,1) size 128x14 - RenderText {#text} at (0,0) size 0x0 -layer at (11,32) size 128x13 - RenderBlock {DIV} at (0,0) size 128x13 - RenderText {#text} at (0,0) size 13x13 - text run at (0,0) width 13: "10" -layer at (8,9) size 147x19 - RenderTextControl {INPUT} at (0,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,1) size 141x17 - RenderBlock {DIV} at (0,1) size 128x14 -layer at (11,12) size 128x13 - RenderBlock {DIV} at (0,0) size 128x13 - RenderText {#text} at (0,0) size 13x13 - text run at (0,0) width 13: "10" -layer at (139,10) size 13x17 - RenderBlock (relative positioned) {DIV} at (127,0) size 14x17 -layer at (139,30) size 13x17 - RenderBlock (relative positioned) {DIV} at (127,0) size 14x17 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/placeholder-position-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/placeholder-position-expected.txt deleted file mode 100644 index 3ef43904d8ebc..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/placeholder-position-expected.txt +++ /dev/null @@ -1,129 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderBR {BR} at (146,0) size 1x18 - RenderTextControl {INPUT} at (0,19) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,19) size 1x18 - RenderTextControl {INPUT} at (0,38) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (131,0) size 9x19 - RenderBlock {DIV} at (19,3) size 113x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderBR {BR} at (145,38) size 1x18 - RenderTextControl {INPUT} at (0,57) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 22x19 - RenderBlock {DIV} at (22,3) size 100x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderBR {BR} at (146,57) size 1x18 - RenderBR {BR} at (161,94) size 0x18 - RenderTextControl {INPUT} at (0,108) size 147x33 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (146,108) size 1x18 - RenderBR {BR} at (161,172) size 0x18 - RenderTextControl {INPUT} at (5,191) size 198x30 [bgcolor=#FFFFFF] [border: (5px solid #000000)] - RenderBR {BR} at (207,198) size 1x18 - RenderTextControl {INPUT} at (0,226) size 147x31 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,232) size 5x18 - text run at (146,232) width 5: " " - RenderTextControl {INPUT} at (150,226) size 148x31 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (297,232) size 1x18 - RenderTextControl {INPUT} at (0,257) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,257) size 5x18 - text run at (146,257) width 5: " " - RenderTextControl {INPUT} at (150,257) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (297,257) size 5x18 - text run at (297,257) width 5: " " - RenderTextControl {INPUT} at (301,257) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (448,257) size 1x18 - RenderBR {BR} at (146,290) size 1x18 -layer at (19,11) size 114x13 - RenderBlock {DIV} at (11,3) size 114x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "placeholder" -layer at (19,11) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (11,30) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "placeholder" -layer at (11,30) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (30,49) size 113x13 - RenderBlock {DIV} at (22,3) size 113x13 [color=#A9A9A9] - RenderText {#text} at (51,0) size 62x13 - text run at (51,0) width 62: "placeholder" -layer at (30,49) size 113x13 - RenderBlock {DIV} at (0,0) size 113x13 -layer at (33,68) size 100x13 - RenderBlock {DIV} at (25,3) size 100x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "placeholder" -layer at (33,68) size 100x13 - RenderBlock {DIV} at (0,0) size 100x13 -layer at (8,84) size 161x32 clip at (9,85) size 159x30 - RenderTextControl {TEXTAREA} at (0,76) size 161x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 155x13 - RenderBlock {DIV} at (3,3) size 155x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "placeholder" -layer at (11,119) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "placeholder" -layer at (11,119) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (8,149) size 161x45 clip at (9,150) size 159x43 - RenderTextControl {TEXTAREA} at (0,141) size 161x45 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,16) size 155x13 - RenderBlock {DIV} at (3,16) size 155x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "placeholder" -layer at (19,205) size 185x18 - RenderBlock {DIV} at (6,6) size 186x18 [color=#A9A9A9] - RenderText {#text} at (0,0) size 81x18 - text run at (0,0) width 81: "placeholder" -layer at (19,205) size 185x18 - RenderBlock {DIV} at (6,6) size 186x18 -layer at (11,237) size 141x25 - RenderBlock {DIV} at (3,3) size 141x25 - RenderText {#text} at (0,6) size 29x13 - text run at (0,6) width 29: "Value" -layer at (162,243) size 141x13 - RenderBlock {DIV} at (3,9) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "placeholder" -layer at (162,237) size 141x25 - RenderBlock {DIV} at (3,3) size 141x25 -layer at (11,268) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (56,0) size 29x13 - text run at (56,0) width 29: "Value" -layer at (162,268) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (39,0) size 63x13 - text run at (39,0) width 63: "placeholder" -layer at (162,268) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (313,268) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (39,0) size 63x13 - text run at (39,0) width 63: "placeholder" -layer at (313,268) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (8,284) size 147x33 - RenderTextControl {INPUT} at (0,276) size 147x33 [bgcolor=#FFFFFF] [border: (2px inset #808080)] -layer at (11,301) size 141x13 - RenderBlock {DIV} at (3,17) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 62x13 - text run at (0,0) width 62: "placeholder" -layer at (11,301) size 141x13 - RenderBlock {DIV} at (3,17) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/placeholder-pseudo-style-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/placeholder-pseudo-style-expected.txt deleted file mode 100644 index 85269ee614d66..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/placeholder-pseudo-style-expected.txt +++ /dev/null @@ -1,66 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 336x18 - text run at (0,0) width 336: "This tests that you can set the placeholder text color." - RenderBR {BR} at (335,0) size 1x18 - RenderTextControl {INPUT} at (0,18) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,18) size 5x18 - text run at (146,18) width 5: " " - RenderTextControl {INPUT} at (150,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (297,18) size 5x18 - text run at (297,18) width 5: " " - RenderTextControl {INPUT} at (301,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (448,18) size 5x18 - text run at (448,18) width 5: " " - RenderTextControl {INPUT} at (452,18) size 147x19 [color=color(srgb 0.341176 0.341176 0.341176)] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (598,18) size 5x18 - text run at (598,18) width 5: " " - RenderTextControl {INPUT} at (602,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderTextControl {INPUT} at (0,37) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#640000] - RenderText {#text} at (0,0) size 21x13 - text run at (0,0) width 21: "text" -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (170,29) size 114x13 - RenderBlock {DIV} at (11,3) size 114x13 [color=#640000] - RenderText {#text} at (0,0) size 36x13 - text run at (0,0) width 36: "search" -layer at (170,29) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (313,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#640000] - RenderText {#text} at (0,0) size 51x13 - text run at (0,0) width 51: "password" -layer at (313,29) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 -layer at (464,29) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 [color=#640000] - RenderText {#text} at (0,0) size 68x13 - text run at (0,0) width 68: "disabled text" -layer at (464,29) size 140x13 - RenderBlock {DIV} at (3,3) size 140x13 -layer at (614,29) size 141x13 backgroundClip at (614,29) size 140x13 clip at (614,29) size 140x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 37x13 - text run at (0,0) width 37: "default" -layer at (614,29) size 141x13 backgroundClip at (614,29) size 140x13 clip at (614,29) size 140x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (11,48) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 85x13 - text run at (0,0) width 85: "default disabled" -layer at (11,48) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/search-cancel-button-style-sharing-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/search-cancel-button-style-sharing-expected.txt deleted file mode 100644 index 06f8ca43f1572..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/search-cancel-button-style-sharing-expected.txt +++ /dev/null @@ -1,28 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 391x18 - text run at (0,0) width 391: "Only the second search field should have a cancel button (\x{D7})." - RenderBlock (anonymous) at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (146,0) size 5x18 - text run at (146,0) width 5: " " - RenderTextControl {INPUT} at (150,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 -layer at (19,45) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 -layer at (170,45) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (0,0) size 42x13 - text run at (0,0) width 42: "this one" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/search-display-none-cancel-button-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/search-display-none-cancel-button-expected.txt deleted file mode 100644 index 82660a68a9588..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/search-display-none-cancel-button-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 510x18 - text run at (0,0) width 510: "This tests that the display:none style will work on a search field's cancel button." - RenderBR {BR} at (509,0) size 1x18 - RenderTextControl {INPUT} at (0,18) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 133x13 - RenderText {#text} at (0,0) size 0x0 -layer at (19,29) size 133x13 - RenderBlock {DIV} at (0,0) size 133x13 - RenderText {#text} at (0,0) size 21x13 - text run at (0,0) width 21: "test" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/search-input-rtl-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/search-input-rtl-expected.txt deleted file mode 100644 index 6e84163afb62b..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/search-input-rtl-expected.txt +++ /dev/null @@ -1,54 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x54 - RenderBlock {HTML} at (0,0) size 800x54 - RenderBody {BODY} at (8,8) size 784x38 - RenderBlock {DIV} at (0,0) size 784x19 - RenderText {#text} at (620,0) size 164x18 - text run at (620,0) width 9 RTL: ": " - text run at (628,0) width 156: "right to left search fields" - RenderTextControl {INPUT} at (474,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (131,0) size 9x19 - RenderBlock {DIV} at (19,3) size 113x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderText {#text} at (470,0) size 5x18 - text run at (470,0) width 5 RTL: " " - RenderTextControl {INPUT} at (324,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (117,0) size 23x19 - RenderBlock {DIV} at (19,3) size 99x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,19) size 784x19 - RenderText {#text} at (0,0) size 164x18 - text run at (0,0) width 164: "left to right search fields: " - RenderTextControl {INPUT} at (163,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (310,0) size 5x18 - text run at (310,0) width 5: " " - RenderTextControl {INPUT} at (314,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 22x19 - RenderBlock {DIV} at (22,3) size 100x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 -layer at (504,11) size 113x13 - RenderBlock {DIV} at (0,0) size 113x13 - RenderText {#text} at (78,0) size 35x13 - text run at (78,0) width 35: "foobar" -layer at (354,11) size 99x13 - RenderBlock {DIV} at (0,0) size 99x13 - RenderText {#text} at (64,0) size 35x13 - text run at (64,0) width 35: "foobar" -layer at (183,30) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (0,0) size 35x13 - text run at (0,0) width 35: "foobar" -layer at (348,30) size 100x13 - RenderBlock {DIV} at (0,0) size 100x13 - RenderText {#text} at (0,0) size 35x13 - text run at (0,0) width 35: "foobar" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/search-rtl-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/search-rtl-expected.txt deleted file mode 100644 index b32484233b4b6..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/search-rtl-expected.txt +++ /dev/null @@ -1,74 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 54x18 - text run at (0,0) width 54: "Test for " - RenderInline {I} at (53,0) size 702x18 - RenderInline {A} at (53,0) size 304x18 [color=#0000EE] - RenderText {#text} at (53,0) size 304x18 - text run at (53,0) width 304: "http://bugs.webkit.org/show_bug.cgi?id=11916" - RenderText {#text} at (356,0) size 399x18 - text run at (356,0) width 5: " " - text run at (360,0) width 395: "REGRESSION (SearchField): RTL search fields are mixed up" - RenderText {#text} at (754,0) size 5x18 - text run at (754,0) width 5: "." - RenderBlock {P} at (0,34) size 784x57 - RenderTextControl {INPUT} at (0,0) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (117,0) size 23x19 - RenderBlock {DIV} at (19,3) size 99x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderBR {BR} at (145,0) size 1x18 - RenderTextControl {INPUT} at (0,19) size 257x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 251x19 - RenderBlock {DIV} at (228,0) size 23x19 - RenderBlock {DIV} at (19,3) size 210x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderBR {BR} at (256,19) size 1x18 - RenderTextControl {INPUT} at (0,38) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 140x19 - RenderBlock {DIV} at (117,0) size 23x19 - RenderBlock {DIV} at (19,3) size 99x13 - RenderBlock {DIV} at (0,0) size 19x19 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,107) size 784x18 - RenderText {#text} at (0,0) size 37x18 - text run at (0,0) width 37: "PASS" -layer at (30,45) size 99x13 scrollX 33 scrollWidth 132 - RenderBlock {DIV} at (0,0) size 99x13 - RenderText {#text} at (-34,0) size 133x13 - text run at (-33,0) width 19 RTL: "\x{5D5}\x{5D6}\x{5D4}\x{5D5}" - text run at (-14,0) width 3 RTL: " " - text run at (-11,0) width 19: "she" - text run at (7,0) width 4 RTL: " " - text run at (10,0) width 13 RTL: "\x{5D6}\x{5D4}" - text run at (22,0) width 4 RTL: " " - text run at (25,0) width 22 RTL: "\x{5D5}\x{5D4}\x{5D9}\x{5D0}" - text run at (46,0) width 4 RTL: " " - text run at (49,0) width 14: "he" - text run at (62,0) width 4 RTL: " " - text run at (65,0) width 14 RTL: "\x{5D6}\x{5D4}" - text run at (78,0) width 4 RTL: " " - text run at (81,0) width 18 RTL: "\x{5D4}\x{5D5}\x{5D0}" -layer at (30,64) size 210x13 - RenderBlock {DIV} at (0,0) size 210x13 - RenderText {#text} at (77,0) size 133x13 - text run at (77,0) width 20 RTL: "\x{5D5}\x{5D6}\x{5D4}\x{5D5}" - text run at (96,0) width 4 RTL: " " - text run at (99,0) width 20: "she" - text run at (118,0) width 4 RTL: " " - text run at (121,0) width 13 RTL: "\x{5D6}\x{5D4}" - text run at (133,0) width 4 RTL: " " - text run at (136,0) width 22 RTL: "\x{5D5}\x{5D4}\x{5D9}\x{5D0}" - text run at (157,0) width 4 RTL: " " - text run at (160,0) width 14: "he" - text run at (173,0) width 4 RTL: " " - text run at (176,0) width 13 RTL: "\x{5D6}\x{5D4}" - text run at (188,0) width 5 RTL: " " - text run at (192,0) width 18 RTL: "\x{5D4}\x{5D5}\x{5D0}" -layer at (30,83) size 99x13 - RenderBlock {DIV} at (0,0) size 99x13 -caret: position 0 of child 0 {DIV} of child 1 {DIV} of child 0 {DIV} of {#document-fragment} of child 7 {INPUT} of child 3 {P} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/search-styled-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/search-styled-expected.txt deleted file mode 100644 index 1c9eed33f365c..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/search-styled-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x43 - RenderBlock {HTML} at (0,0) size 800x43 - RenderBody {BODY} at (8,8) size 784x27 - RenderTextControl {INPUT} at (0,0) size 186x27 [bgcolor=#FFFFFF] [border: (1px solid #BDC7D8)] - RenderFlexibleBox {DIV} at (18,4) size 164x19 - RenderBlock {DIV} at (0,0) size 22x19 - RenderBlock {DIV} at (22,3) size 123x13 - RenderBlock {DIV} at (145,0) size 19x19 - RenderText {#text} at (0,0) size 0x0 -layer at (48,15) size 123x13 - RenderBlock {DIV} at (40,7) size 123x13 [color=#A9A9A9] - RenderText {#text} at (0,0) size 92x13 - text run at (0,0) width 92: "Search for Events" -layer at (48,15) size 123x13 - RenderBlock {DIV} at (0,0) size 123x13 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/search-vertical-alignment-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/search-vertical-alignment-expected.txt deleted file mode 100644 index e10324e4f4d9d..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/search-vertical-alignment-expected.txt +++ /dev/null @@ -1,66 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 772x36 - text run at (0,0) width 431: "Test that search field text is vertically centered if the search field is " - text run at (430,0) width 342: "taller than the text. In each of the following pairs of a" - text run at (0,18) width 105: "search field and " - text run at (104,18) width 366: "a text field, the vertical position of the text should be the " - text run at (469,18) width 125: "same in both fields." - RenderBlock {P} at (0,52) size 784x45 - RenderTextControl {INPUT} at (0,0) size 147x45 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x39 - RenderBlock {DIV} at (0,10) size 17x19 - RenderBlock {DIV} at (17,13) size 105x13 - RenderBlock {DIV} at (121,10) size 20x19 - RenderText {#text} at (146,13) size 5x18 - text run at (146,13) width 5: " " - RenderTextControl {INPUT} at (150,0) size 148x45 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,113) size 784x18 - RenderTextControl {INPUT} at (0,2) size 147x16 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 141x16 - RenderBlock {DIV} at (0,0) size 17x19 - RenderBlock {DIV} at (17,1) size 105x14 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (146,0) size 5x18 - text run at (146,0) width 5: " " - RenderTextControl {INPUT} at (150,2) size 148x16 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,147) size 784x18 - RenderTextControl {INPUT} at (0,5) size 147x12 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,0) size 141x12 - RenderBlock {DIV} at (0,0) size 17x19 - RenderBlock {DIV} at (17,3) size 105x6 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (146,0) size 5x18 - text run at (146,0) width 5: " " - RenderTextControl {INPUT} at (150,4) size 148x12 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (28,76) size 105x13 - RenderBlock {DIV} at (0,0) size 105x13 - RenderText {#text} at (0,0) size 22x13 - text run at (0,0) width 22: "Text" -layer at (162,76) size 141x13 - RenderBlock {DIV} at (3,16) size 141x13 - RenderText {#text} at (0,0) size 22x13 - text run at (0,0) width 22: "Text" -layer at (28,125) size 105x13 - RenderBlock {DIV} at (0,0) size 105x13 - RenderText {#text} at (0,0) size 22x13 - text run at (0,0) width 22: "Text" -layer at (162,125) size 141x13 - RenderBlock {DIV} at (3,1) size 141x14 - RenderText {#text} at (0,0) size 22x13 - text run at (0,0) width 22: "Text" -layer at (28,163) size 105x6 scrollHeight 13 - RenderBlock {DIV} at (0,0) size 105x6 - RenderText {#text} at (0,0) size 22x13 - text run at (0,0) width 22: "Text" -layer at (162,159) size 141x13 - RenderBlock {DIV} at (3,-1) size 141x14 - RenderText {#text} at (0,0) size 22x13 - text run at (0,0) width 22: "Text" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/search/search-padding-cancel-results-buttons-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/search/search-padding-cancel-results-buttons-expected.txt deleted file mode 100644 index d900d9788493a..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/search/search-padding-cancel-results-buttons-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTextControl {INPUT} at (0,0) size 165x43 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (12,12) size 141x19 - RenderBlock {DIV} at (0,0) size 22x19 - RenderBlock {DIV} at (22,3) size 100x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 -layer at (42,23) size 100x13 - RenderBlock {DIV} at (0,0) size 100x13 - RenderText {#text} at (0,0) size 21x13 - text run at (0,0) width 21: "test" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/search/search-size-with-decorations-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/search/search-size-with-decorations-expected.txt deleted file mode 100644 index 5e89e478a4fb8..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/search/search-size-with-decorations-expected.txt +++ /dev/null @@ -1,69 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x149 - RenderBlock {HTML} at (0,0) size 800x149 - RenderBody {BODY} at (8,8) size 784x133 - RenderTextControl {INPUT} at (0,0) size 174x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 168x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 141x13 - RenderBlock {DIV} at (148,0) size 20x19 - RenderBR {BR} at (173,0) size 1x18 - RenderTextControl {INPUT} at (0,19) size 174x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 168x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 141x13 - RenderBlock {DIV} at (148,0) size 20x19 - RenderBR {BR} at (173,19) size 1x18 - RenderTextControl {INPUT} at (0,38) size 183x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 177x19 - RenderBlock {DIV} at (0,0) size 17x19 - RenderBlock {DIV} at (17,3) size 141x13 - RenderBlock {DIV} at (157,0) size 20x19 - RenderBR {BR} at (182,38) size 1x18 - RenderTextControl {INPUT} at (0,57) size 183x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 177x19 - RenderBlock {DIV} at (0,0) size 17x19 - RenderBlock {DIV} at (17,3) size 141x13 - RenderBlock {DIV} at (157,0) size 20x19 - RenderBR {BR} at (182,57) size 1x18 - RenderTextControl {INPUT} at (0,76) size 188x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 182x19 - RenderBlock {DIV} at (0,0) size 22x19 - RenderBlock {DIV} at (22,3) size 141x13 - RenderBlock {DIV} at (162,0) size 20x19 - RenderBR {BR} at (187,76) size 1x18 - RenderTextControl {INPUT} at (0,95) size 188x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 182x19 - RenderBlock {DIV} at (0,0) size 22x19 - RenderBlock {DIV} at (22,3) size 141x13 - RenderBlock {DIV} at (162,0) size 20x19 - RenderBR {BR} at (187,95) size 1x18 - RenderTextControl {INPUT} at (0,114) size 328x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 322x19 - RenderBlock {DIV} at (0,0) size 22x19 - RenderBlock {DIV} at (22,3) size 281x13 - RenderBlock {DIV} at (302,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 -layer at (19,11) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 -layer at (19,30) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 135x13 - text run at (0,0) width 135: "12345678901234567890" -layer at (28,49) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 -layer at (28,68) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 135x13 - text run at (0,0) width 135: "12345678901234567890" -layer at (33,87) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 -layer at (33,106) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 135x13 - text run at (0,0) width 135: "12345678901234567890" -layer at (33,125) size 281x13 - RenderBlock {DIV} at (0,0) size 281x13 - RenderText {#text} at (0,0) size 269x13 - text run at (0,0) width 269: "1234567890123456789012345678901234567890" diff --git a/LayoutTests/platform/mac-ventura/fast/forms/select-visual-hebrew-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/select-visual-hebrew-expected.txt deleted file mode 100644 index abe4abf5fd082..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/select-visual-hebrew-expected.txt +++ /dev/null @@ -1,19 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 632x18 - text run at (0,0) width 632: "This tests that native pop-ups are rendered in logical order even in visually-ordered Hebrew pages." - RenderBlock {P} at (0,52) size 784x19 - RenderText {#text} at (0,1) size 398x18 - text run at (0,1) width 398: "Text on the pop-up and in the list should look like this: \x{5E8}\x{5D5}\x{5EA}\x{5E4}\x{5DB}" - RenderBlock (anonymous) at (0,87) size 784x18 - RenderMenuList {SELECT} at (0,0) size 62x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 62x18 - RenderText at (8,2) size 31x13 - text run at (8,2) width 31 RTL: "\x{5DB}\x{5E4}\x{5EA}\x{5D5}\x{5E8}" - RenderText {#text} at (0,0) size 0x0 -layer at (8,42) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,34) size 784x2 [color=#808080] [border: (1px inset #808080)] diff --git a/LayoutTests/platform/mac-ventura/fast/forms/select-writing-direction-natural-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/select-writing-direction-natural-expected.txt deleted file mode 100644 index 6a5d57b3e387c..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/select-writing-direction-natural-expected.txt +++ /dev/null @@ -1,136 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 54x18 - text run at (0,0) width 54: "Test for " - RenderInline {I} at (0,0) size 716x36 - RenderInline {A} at (53,0) size 305x18 [color=#0000EE] - RenderText {#text} at (53,0) size 305x18 - text run at (53,0) width 305: "http://bugs.webkit.org/show_bug.cgi?id=13775" - RenderText {#text} at (0,0) size 716x36 - text run at (357,0) width 5: " " - text run at (361,0) width 355: "REGRESSION: Popup button text should use \"natural\"" - text run at (0,18) width 330: "directionality to match the items in the popup menu" - RenderText {#text} at (329,18) size 5x18 - text run at (329,18) width 5: "." - RenderBlock {DIV} at (0,52) size 784x38 - RenderBlock {DIV} at (0,0) size 784x19 - RenderMenuList {SELECT} at (0,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (8,2) size 15x13 - text run at (8,2) width 8 RTL: "\x{5D0}" - text run at (15,2) width 8: "A" - RenderText {#text} at (70,0) size 4x18 - text run at (70,0) width 4: " " - RenderMenuList {SELECT} at (74,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (8,2) size 15x13 - text run at (8,2) width 8: "A" - text run at (15,2) width 8 RTL: "\x{5D0}" - RenderText {#text} at (144,0) size 4x18 - text run at (144,0) width 4: " " - RenderMenuList {SELECT} at (148,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (8,2) size 19x13 - text run at (8,2) width 5: "(" - text run at (12,2) width 8 RTL: "\x{5D0}" - text run at (19,2) width 8: "A" - RenderText {#text} at (218,0) size 4x18 - text run at (218,0) width 4: " " - RenderMenuList {SELECT} at (222,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (8,2) size 19x13 - text run at (8,2) width 12: "(A" - text run at (19,2) width 8 RTL: "\x{5D0}" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,19) size 784x19 - RenderMenuList {SELECT} at (492,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (8,2) size 15x13 - text run at (8,2) width 8 RTL: "\x{5D0}" - text run at (15,2) width 8: "A" - RenderText {#text} at (562,0) size 4x18 - text run at (562,0) width 4: " " - RenderMenuList {SELECT} at (566,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (8,2) size 15x13 - text run at (8,2) width 8: "A" - text run at (15,2) width 8 RTL: "\x{5D0}" - RenderText {#text} at (636,0) size 4x18 - text run at (636,0) width 4: " " - RenderMenuList {SELECT} at (640,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (8,2) size 19x13 - text run at (8,2) width 5: "(" - text run at (12,2) width 8 RTL: "\x{5D0}" - text run at (19,2) width 8: "A" - RenderText {#text} at (710,0) size 4x18 - text run at (710,0) width 4: " " - RenderMenuList {SELECT} at (714,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (8,2) size 19x13 - text run at (8,2) width 12: "(A" - text run at (19,2) width 8 RTL: "\x{5D0}" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,90) size 784x38 - RenderBlock {DIV} at (0,0) size 784x19 - RenderMenuList {SELECT} at (222,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (47,2) size 15x13 - text run at (47,2) width 8: "A" - text run at (54,2) width 8 RTL: "\x{5D0}" - RenderText {#text} at (218,0) size 4x18 - text run at (218,0) width 4 RTL: " " - RenderMenuList {SELECT} at (148,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (47,2) size 15x13 - text run at (47,2) width 8 RTL: "\x{5D0}" - text run at (54,2) width 8: "A" - RenderText {#text} at (144,0) size 4x18 - text run at (144,0) width 4 RTL: " " - RenderMenuList {SELECT} at (74,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (43,2) size 19x13 - text run at (43,2) width 8: "A" - text run at (50,2) width 12 RTL: "(\x{5D0}" - RenderText {#text} at (70,0) size 4x18 - text run at (70,0) width 4 RTL: " " - RenderMenuList {SELECT} at (0,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (43,2) size 19x13 - text run at (43,2) width 8 RTL: "\x{5D0}" - text run at (50,2) width 8: "A" - text run at (57,2) width 5 RTL: "(" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,19) size 784x19 - RenderMenuList {SELECT} at (714,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (47,2) size 15x13 - text run at (47,2) width 8: "A" - text run at (54,2) width 8 RTL: "\x{5D0}" - RenderText {#text} at (710,0) size 4x18 - text run at (710,0) width 4 RTL: " " - RenderMenuList {SELECT} at (640,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (47,2) size 15x13 - text run at (47,2) width 8 RTL: "\x{5D0}" - text run at (54,2) width 8: "A" - RenderText {#text} at (636,0) size 4x18 - text run at (636,0) width 4 RTL: " " - RenderMenuList {SELECT} at (566,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (43,2) size 19x13 - text run at (43,2) width 8: "A" - text run at (50,2) width 12 RTL: "(\x{5D0}" - RenderText {#text} at (562,0) size 4x18 - text run at (562,0) width 4 RTL: " " - RenderMenuList {SELECT} at (492,1) size 70x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 70x18 - RenderText at (43,2) size 19x13 - text run at (43,2) width 8 RTL: "\x{5D0}" - text run at (50,2) width 8: "A" - text run at (57,2) width 5 RTL: "(" - RenderText {#text} at (0,0) size 0x0 diff --git a/LayoutTests/platform/mac-ventura/fast/forms/tabbing-input-iframe-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/tabbing-input-iframe-expected.txt deleted file mode 100644 index 09f1080573961..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/tabbing-input-iframe-expected.txt +++ /dev/null @@ -1,29 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 454x18 - text run at (0,0) width 454: "This tests that you can tab out of a text field if an iframe comes after it." - RenderBR {BR} at (453,0) size 1x18 - RenderTextControl {INPUT} at (0,156) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (146,156) size 5x18 - text run at (146,156) width 5: " " - RenderIFrame {IFRAME} at (150,18) size 303x152 [border: (1px solid #000000)] - layer at (0,0) size 300x150 - RenderView at (0,0) size 300x150 - layer at (0,0) size 300x150 - RenderBlock {HTML} at (0,0) size 300x150 - RenderBody {BODY} at (8,8) size 284x134 - RenderText {#text} at (452,156) size 5x18 - text run at (452,156) width 5: " " - RenderTextControl {INPUT} at (456,156) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,167) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (468,167) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 121x13 - text run at (0,0) width 121: "This should have focus" -selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 7 {INPUT} of body -selection end: position 22 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 7 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/text-control-intrinsic-widths-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/text-control-intrinsic-widths-expected.txt deleted file mode 100644 index 67969dc4acd43..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/text-control-intrinsic-widths-expected.txt +++ /dev/null @@ -1,387 +0,0 @@ -This test measures the width of textareas and text inputs for different fonts. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - - -Lucida Grande -input -size=1 clientWidth=25 -size=2 clientWidth=30 -size=3 clientWidth=35 -size=4 clientWidth=40 -size=5 clientWidth=45 -size=10 clientWidth=70 -size=20 clientWidth=120 -size=50 clientWidth=270 -size=100 clientWidth=520 -size=500 clientWidth=2520 -size=1000 clientWidth=5020 - -textarea -cols=1 clientWidth=26 -cols=2 clientWidth=33 -cols=3 clientWidth=40 -cols=4 clientWidth=47 -cols=5 clientWidth=54 -cols=10 clientWidth=89 -cols=20 clientWidth=159 -cols=50 clientWidth=369 -cols=100 clientWidth=719 -cols=500 clientWidth=3519 -cols=1000 clientWidth=7019 - -Courier -input -size=1 clientWidth=10 -size=2 clientWidth=16 -size=3 clientWidth=23 -size=4 clientWidth=29 -size=5 clientWidth=36 -size=10 clientWidth=69 -size=20 clientWidth=135 -size=50 clientWidth=333 -size=100 clientWidth=663 -size=500 clientWidth=3304 -size=1000 clientWidth=6604 - -textarea -cols=1 clientWidth=26 -cols=2 clientWidth=33 -cols=3 clientWidth=39 -cols=4 clientWidth=46 -cols=5 clientWidth=53 -cols=10 clientWidth=86 -cols=20 clientWidth=152 -cols=50 clientWidth=350 -cols=100 clientWidth=680 -cols=500 clientWidth=3320 -cols=1000 clientWidth=6621 - -Helvetica -input -size=1 clientWidth=9 -size=2 clientWidth=15 -size=3 clientWidth=21 -size=4 clientWidth=27 -size=5 clientWidth=34 -size=10 clientWidth=64 -size=20 clientWidth=125 -size=50 clientWidth=309 -size=100 clientWidth=615 -size=500 clientWidth=3062 -size=1000 clientWidth=6121 - -textarea -cols=1 clientWidth=26 -cols=2 clientWidth=32 -cols=3 clientWidth=38 -cols=4 clientWidth=44 -cols=5 clientWidth=50 -cols=10 clientWidth=81 -cols=20 clientWidth=142 -cols=50 clientWidth=325 -cols=100 clientWidth=631 -cols=500 clientWidth=3078 -cols=1000 clientWidth=6137 - -Monaco -input -size=1 clientWidth=10 -size=2 clientWidth=16 -size=3 clientWidth=23 -size=4 clientWidth=29 -size=5 clientWidth=36 -size=10 clientWidth=69 -size=20 clientWidth=135 -size=50 clientWidth=333 -size=100 clientWidth=663 -size=500 clientWidth=3304 -size=1000 clientWidth=6604 - -textarea -cols=1 clientWidth=26 -cols=2 clientWidth=33 -cols=3 clientWidth=39 -cols=4 clientWidth=46 -cols=5 clientWidth=53 -cols=10 clientWidth=86 -cols=20 clientWidth=152 -cols=50 clientWidth=350 -cols=100 clientWidth=680 -cols=500 clientWidth=3320 -cols=1000 clientWidth=6621 - -Times -input -size=1 clientWidth=9 -size=2 clientWidth=14 -size=3 clientWidth=20 -size=4 clientWidth=25 -size=5 clientWidth=31 -size=10 clientWidth=58 -size=20 clientWidth=113 -size=50 clientWidth=278 -size=100 clientWidth=553 -size=500 clientWidth=2753 -size=1000 clientWidth=5503 - -textarea -cols=1 clientWidth=25 -cols=2 clientWidth=30 -cols=3 clientWidth=36 -cols=4 clientWidth=41 -cols=5 clientWidth=47 -cols=10 clientWidth=74 -cols=20 clientWidth=129 -cols=50 clientWidth=294 -cols=100 clientWidth=569 -cols=500 clientWidth=2769 -cols=1000 clientWidth=5519 - -Andale Mono -input -size=1 clientWidth=10 -size=2 clientWidth=17 -size=3 clientWidth=24 -size=4 clientWidth=31 -size=5 clientWidth=38 -size=10 clientWidth=73 -size=20 clientWidth=143 -size=50 clientWidth=353 -size=100 clientWidth=703 -size=500 clientWidth=3503 -size=1000 clientWidth=7003 - -textarea -cols=1 clientWidth=26 -cols=2 clientWidth=33 -cols=3 clientWidth=40 -cols=4 clientWidth=47 -cols=5 clientWidth=54 -cols=10 clientWidth=89 -cols=20 clientWidth=159 -cols=50 clientWidth=369 -cols=100 clientWidth=719 -cols=500 clientWidth=3519 -cols=1000 clientWidth=7019 - -Arial -input -size=1 clientWidth=32 -size=2 clientWidth=37 -size=3 clientWidth=42 -size=4 clientWidth=47 -size=5 clientWidth=52 -size=10 clientWidth=77 -size=20 clientWidth=127 -size=50 clientWidth=277 -size=100 clientWidth=527 -size=500 clientWidth=2527 -size=1000 clientWidth=5027 - -textarea -cols=1 clientWidth=24 -cols=2 clientWidth=29 -cols=3 clientWidth=34 -cols=4 clientWidth=39 -cols=5 clientWidth=44 -cols=10 clientWidth=69 -cols=20 clientWidth=119 -cols=50 clientWidth=269 -cols=100 clientWidth=519 -cols=500 clientWidth=2519 -cols=1000 clientWidth=5019 - -Comic Sans MS -input -size=1 clientWidth=17 -size=2 clientWidth=22 -size=3 clientWidth=27 -size=4 clientWidth=32 -size=5 clientWidth=37 -size=10 clientWidth=62 -size=20 clientWidth=112 -size=50 clientWidth=262 -size=100 clientWidth=512 -size=500 clientWidth=2512 -size=1000 clientWidth=5012 - -textarea -cols=1 clientWidth=24 -cols=2 clientWidth=29 -cols=3 clientWidth=34 -cols=4 clientWidth=39 -cols=5 clientWidth=44 -cols=10 clientWidth=69 -cols=20 clientWidth=119 -cols=50 clientWidth=269 -cols=100 clientWidth=519 -cols=500 clientWidth=2519 -cols=1000 clientWidth=5019 - -Courier New -input -size=1 clientWidth=11 -size=2 clientWidth=18 -size=3 clientWidth=25 -size=4 clientWidth=32 -size=5 clientWidth=39 -size=10 clientWidth=74 -size=20 clientWidth=144 -size=50 clientWidth=354 -size=100 clientWidth=704 -size=500 clientWidth=3504 -size=1000 clientWidth=7004 - -textarea -cols=1 clientWidth=26 -cols=2 clientWidth=33 -cols=3 clientWidth=40 -cols=4 clientWidth=47 -cols=5 clientWidth=54 -cols=10 clientWidth=89 -cols=20 clientWidth=159 -cols=50 clientWidth=369 -cols=100 clientWidth=719 -cols=500 clientWidth=3519 -cols=1000 clientWidth=7019 - -Georgia -input -size=1 clientWidth=28 -size=2 clientWidth=33 -size=3 clientWidth=38 -size=4 clientWidth=43 -size=5 clientWidth=48 -size=10 clientWidth=73 -size=20 clientWidth=123 -size=50 clientWidth=273 -size=100 clientWidth=523 -size=500 clientWidth=2523 -size=1000 clientWidth=5023 - -textarea -cols=1 clientWidth=24 -cols=2 clientWidth=29 -cols=3 clientWidth=34 -cols=4 clientWidth=39 -cols=5 clientWidth=44 -cols=10 clientWidth=69 -cols=20 clientWidth=119 -cols=50 clientWidth=269 -cols=100 clientWidth=519 -cols=500 clientWidth=2519 -cols=1000 clientWidth=5019 - -Times New Roman -input -size=1 clientWidth=31 -size=2 clientWidth=35 -size=3 clientWidth=39 -size=4 clientWidth=43 -size=5 clientWidth=47 -size=10 clientWidth=67 -size=20 clientWidth=107 -size=50 clientWidth=227 -size=100 clientWidth=427 -size=500 clientWidth=2027 -size=1000 clientWidth=4027 - -textarea -cols=1 clientWidth=23 -cols=2 clientWidth=27 -cols=3 clientWidth=31 -cols=4 clientWidth=35 -cols=5 clientWidth=39 -cols=10 clientWidth=59 -cols=20 clientWidth=99 -cols=50 clientWidth=219 -cols=100 clientWidth=419 -cols=500 clientWidth=2019 -cols=1000 clientWidth=4019 - -Trebuchet MS -input -size=1 clientWidth=16 -size=2 clientWidth=21 -size=3 clientWidth=26 -size=4 clientWidth=31 -size=5 clientWidth=36 -size=10 clientWidth=61 -size=20 clientWidth=111 -size=50 clientWidth=261 -size=100 clientWidth=511 -size=500 clientWidth=2511 -size=1000 clientWidth=5011 - -textarea -cols=1 clientWidth=24 -cols=2 clientWidth=29 -cols=3 clientWidth=34 -cols=4 clientWidth=39 -cols=5 clientWidth=44 -cols=10 clientWidth=69 -cols=20 clientWidth=119 -cols=50 clientWidth=269 -cols=100 clientWidth=519 -cols=500 clientWidth=2519 -cols=1000 clientWidth=5019 - -Verdana -input -size=1 clientWidth=24 -size=2 clientWidth=30 -size=3 clientWidth=36 -size=4 clientWidth=42 -size=5 clientWidth=48 -size=10 clientWidth=78 -size=20 clientWidth=138 -size=50 clientWidth=318 -size=100 clientWidth=618 -size=500 clientWidth=3018 -size=1000 clientWidth=6018 - -textarea -cols=1 clientWidth=25 -cols=2 clientWidth=31 -cols=3 clientWidth=37 -cols=4 clientWidth=43 -cols=5 clientWidth=49 -cols=10 clientWidth=79 -cols=20 clientWidth=139 -cols=50 clientWidth=319 -cols=100 clientWidth=619 -cols=500 clientWidth=3019 -cols=1000 clientWidth=6019 - -Webdings -input -size=1 clientWidth=47 -size=2 clientWidth=58 -size=3 clientWidth=69 -size=4 clientWidth=80 -size=5 clientWidth=91 -size=10 clientWidth=146 -size=20 clientWidth=256 -size=50 clientWidth=586 -size=100 clientWidth=1136 -size=500 clientWidth=5536 -size=1000 clientWidth=11036 - -textarea -cols=1 clientWidth=30 -cols=2 clientWidth=41 -cols=3 clientWidth=52 -cols=4 clientWidth=63 -cols=5 clientWidth=74 -cols=10 clientWidth=129 -cols=20 clientWidth=239 -cols=50 clientWidth=569 -cols=100 clientWidth=1119 -cols=500 clientWidth=5519 -cols=1000 clientWidth=11019 - -PASS successfullyParsed is true - -TEST COMPLETE - diff --git a/LayoutTests/platform/mac-ventura/fast/forms/textfield-focus-ring-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/textfield-focus-ring-expected.txt deleted file mode 100644 index 61e1b9dd7da34..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/textfield-focus-ring-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 759x36 - text run at (0,0) width 759: "Assuming the port-specific theme draws focus rings, this test can be used to ensure that a focus ring is drawn for a text" - text run at (0,18) width 614: "input element. This test PASSED if a focus ring is drawn around the text input element (below)." - RenderBlock (anonymous) at (0,52) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,63) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 0 of child 0 {DIV} of {#document-fragment} of child 3 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/textfield-outline-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/textfield-outline-expected.txt deleted file mode 100644 index 1ebec6a996b07..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/textfield-outline-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 563x18 - text run at (0,0) width 563: "This tests that a negative outline-offset won't get in the way of a cursor in a text control." - RenderBR {BR} at (562,0) size 1x18 - RenderTextControl {INPUT} at (0,18) size 246x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderText {#text} at (0,0) size 0x0 -layer at (10,28) size 242x23 - RenderBlock {DIV} at (2,2) size 242x23 - RenderText {#text} at (0,0) size 33x23 - text run at (0,0) width 33: "abc" -caret: position 3 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 3 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/textfield-overflow-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/textfield-overflow-expected.txt deleted file mode 100644 index 71863bf806228..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/textfield-overflow-expected.txt +++ /dev/null @@ -1,11 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTextControl {INPUT} at (0,0) size 147x10 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,7) size 141x13 - RenderBlock {DIV} at (3,-2) size 141x14 -caret: position 0 of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of body diff --git a/LayoutTests/platform/mac-ventura/fast/forms/visual-hebrew-text-field-expected.txt b/LayoutTests/platform/mac-ventura/fast/forms/visual-hebrew-text-field-expected.txt deleted file mode 100644 index 800a681041839..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/forms/visual-hebrew-text-field-expected.txt +++ /dev/null @@ -1,29 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 218x18 - text run at (0,0) width 218: "This tests for a regression against " - RenderInline {I} at (0,0) size 783x36 - RenderInline {A} at (217,0) size 354x18 [color=#0000EE] - RenderText {#text} at (217,0) size 354x18 - text run at (217,0) width 354: "http://bugzilla.opendarwin.org/show_bug.cgi?id=8076" - RenderText {#text} at (0,0) size 783x36 - text run at (570,0) width 213: " REGRESSION: native text fields" - text run at (0,18) width 251: "are reversed on \"visual Hebrew\" pages" - RenderText {#text} at (250,18) size 5x18 - text run at (250,18) width 5: "." - RenderBlock {P} at (0,70) size 784x19 - RenderText {#text} at (0,1) size 286x18 - text run at (0,1) width 286: "Text in the field should look like this: \x{5E8}\x{5D5}\x{5EA}\x{5E4}\x{5DB}" - RenderBlock (anonymous) at (0,105) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (8,60) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,52) size 784x2 [color=#808080] [border: (1px inset #808080)] -layer at (11,116) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 31x13 - text run at (0,0) width 31 RTL: "\x{5DB}\x{5E4}\x{5EA}\x{5D5}\x{5E8}" diff --git a/LayoutTests/platform/mac-ventura/fast/frames/take-focus-from-iframe-expected.txt b/LayoutTests/platform/mac-ventura/fast/frames/take-focus-from-iframe-expected.txt deleted file mode 100644 index ba7591f5a6942..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/frames/take-focus-from-iframe-expected.txt +++ /dev/null @@ -1,25 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x44 - RenderIFrame {IFRAME} at (0,0) size 204x44 [border: (2px inset #000000)] - layer at (0,0) size 200x40 - RenderView at (0,0) size 200x40 - layer at (0,0) size 200x40 - RenderBlock {HTML} at (0,0) size 200x40 - RenderBody {BODY} at (8,8) size 184x24 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,60) size 784x19 - RenderText {#text} at (0,0) size 373x18 - text run at (0,0) width 373: "This field should look and act focused. Try to type into it: " - RenderTextControl {INPUT} at (372,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] -layer at (383,71) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 29x13 - text run at (0,0) width 29: "PASS" -caret: position 4 of child 0 {#text} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 3 {P} of body diff --git a/LayoutTests/platform/mac-ventura/fast/html/details-no-summary4-expected.txt b/LayoutTests/platform/mac-ventura/fast/html/details-no-summary4-expected.txt deleted file mode 100644 index c2121e6e91bf2..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/html/details-no-summary4-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DETAILS} at (0,0) size 784x37 - RenderListItem {SUMMARY} at (0,0) size 784x18 - RenderListMarker at (0,0) size 15x18: "\x{25BE}" - RenderText {#text} at (14,0) size 46x18 - text run at (14,0) width 46: "Details" - RenderBlock {SLOT} at (0,18) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/html/details-open-javascript-expected.txt b/LayoutTests/platform/mac-ventura/fast/html/details-open-javascript-expected.txt deleted file mode 100644 index 96afaf3977dcb..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/html/details-open-javascript-expected.txt +++ /dev/null @@ -1,20 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DETAILS} at (0,0) size 784x37 - RenderListItem {SUMMARY} at (0,0) size 784x18 - RenderListMarker at (0,0) size 15x18: "\x{25BE}" - RenderText {#text} at (14,0) size 50x18 - text run at (14,0) width 50: "details1" - RenderBlock {SLOT} at (0,18) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DETAILS} at (0,37) size 784x18 - RenderListItem {SUMMARY} at (0,0) size 784x18 - RenderListMarker at (0,0) size 13x18: "\x{25B8}" - RenderText {#text} at (12,0) size 51x18 - text run at (12,0) width 51: "details2" -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/html/details-open2-expected.txt b/LayoutTests/platform/mac-ventura/fast/html/details-open2-expected.txt deleted file mode 100644 index faa0f4c62bdf4..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/html/details-open2-expected.txt +++ /dev/null @@ -1,16 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DETAILS} at (0,0) size 784x37 - RenderListItem {SUMMARY} at (0,0) size 784x18 - RenderListMarker at (0,0) size 15x18: "\x{25BE}" - RenderText {#text} at (14,0) size 60x18 - text run at (14,0) width 60: "summary" - RenderBlock {SLOT} at (0,18) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/html/details-open4-expected.txt b/LayoutTests/platform/mac-ventura/fast/html/details-open4-expected.txt deleted file mode 100644 index a8726ca61c2d1..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/html/details-open4-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DETAILS} at (0,0) size 784x37 - RenderListItem {SUMMARY} at (0,0) size 784x18 - RenderListMarker at (0,0) size 15x18: "\x{25BE}" - RenderText {#text} at (14,0) size 60x18 - text run at (14,0) width 60: "summary" - RenderBlock {SLOT} at (0,18) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/invalid/008-expected.txt b/LayoutTests/platform/mac-ventura/fast/invalid/008-expected.txt deleted file mode 100644 index d8f203b9c889b..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/invalid/008-expected.txt +++ /dev/null @@ -1,12 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x577 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 32x18 - text run at (0,0) width 32: "Test" -layer at (250,50) size 247x62 - RenderBlock (positioned) {DIV} at (250,50) size 248x62 [border: (2px solid #008000)] - RenderText {#text} at (22,22) size 204x18 - text run at (22,22) width 204: "I should be absolute positioned." diff --git a/LayoutTests/platform/mac-ventura/fast/lists/dynamic-marker-crash-expected.txt b/LayoutTests/platform/mac-ventura/fast/lists/dynamic-marker-crash-expected.txt deleted file mode 100644 index fb06cdab016c6..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/lists/dynamic-marker-crash-expected.txt +++ /dev/null @@ -1,19 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x85 - RenderBlock {HTML} at (0,0) size 800x85 - RenderBody {BODY} at (8,16) size 784x53 - RenderBlock {UL} at (0,0) size 784x53 - RenderListItem {LI} at (40,0) size 744x53 - RenderBlock {FORM} at (0,0) size 744x19 - RenderBlock {P} at (0,0) size 744x19 - RenderListMarker at (-17,0) size 7x18: bullet - RenderTextControl {INPUT} at (0,0) size 287x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,35) size 744x18 - RenderText {#text} at (0,0) size 339x18 - text run at (0,0) width 339: "There should be an input field above this line of text." -layer at (51,19) size 281x13 - RenderBlock {DIV} at (3,3) size 281x13 - RenderText {#text} at (0,0) size 56x13 - text run at (0,0) width 56: "blah blubb" diff --git a/LayoutTests/platform/mac-ventura/fast/overflow/003-expected.txt b/LayoutTests/platform/mac-ventura/fast/overflow/003-expected.txt deleted file mode 100644 index 65f3a57cfccc1..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/overflow/003-expected.txt +++ /dev/null @@ -1,193 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (10,10) size 780x302 - RenderBlock {fake} at (10,10) size 780x302 [bgcolor=#FFFF00] -layer at (10,10) size 282x302 clip at (11,11) size 265x300 scrollHeight 1302 - RenderBlock {channel} at (0,0) size 282x302 [bgcolor=#EEEEEE] [border: (1px solid #000000)] - RenderBlock {title} at (11,11) size 255x19 - RenderText {#text} at (0,0) size 156x19 - text run at (0,0) width 156: "scottandrew.com" - RenderBlock {description} at (11,40) size 255x12 - RenderText {#text} at (0,0) size 193x12 - text run at (0,0) width 193: "DHTML, DOM and JavaScript News" - RenderBlock {item} at (1,62) size 265x97 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 234x15 - RenderText {#text} at (10,11) size 234x15 - text run at (10,11) width 234: "DHTML Animation Array Generator" - RenderText {#text} at (0,0) size 0x0 - RenderInline {description} at (10,26) size 237x60 - RenderText {#text} at (10,26) size 237x60 - text run at (10,26) width 237: "Robert points us to the first third-party" - text run at (10,41) width 217: "tool for the DomAPI: The Animation" - text run at (10,56) width 201: "Array Generator, a visual tool for" - text run at (10,71) width 62: "creating..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,169) size 265x82 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 180x15 - RenderText {#text} at (10,11) size 180x15 - text run at (10,11) width 180: "DOM and Extended Entries" - RenderText {#text} at (189,11) size 5x15 - text run at (189,11) width 5: " " - RenderInline {description} at (10,11) size 244x60 - RenderText {#text} at (10,11) size 244x60 - text run at (193,11) width 61: "Aarondot:" - text run at (10,26) width 208: "A Better Way To Display Extended" - text run at (10,41) width 226: "Entries. Very cool, and uses the DOM" - text run at (10,56) width 243: "and JavaScript to reveal the extended..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,261) size 265x82 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 166x15 - RenderText {#text} at (10,11) size 166x15 - text run at (10,11) width 166: "cellspacing and the DOM" - RenderText {#text} at (175,11) size 5x15 - text run at (175,11) width 5: " " - RenderInline {description} at (10,11) size 242x60 - RenderText {#text} at (10,11) size 242x60 - text run at (179,11) width 73: "By the way," - text run at (10,26) width 217: "if you're using the DOM to generate" - text run at (10,41) width 203: "TABLE elements, you have to use" - text run at (10,56) width 158: "setAttribute() to set the..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,353) size 265x97 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 181x15 - RenderText {#text} at (10,11) size 181x15 - text run at (10,11) width 181: "contenteditable for Mozilla" - RenderText {#text} at (190,11) size 5x15 - text run at (190,11) width 5: " " - RenderInline {description} at (10,11) size 242x75 - RenderText {#text} at (10,11) size 242x75 - text run at (194,11) width 55: "The folks" - text run at (10,26) width 215: "art Q42, creator of Quek (cute little" - text run at (10,41) width 242: "avatar/chat) and Xopus (browser-based" - text run at (10,56) width 225: "WYSIWYG XML-editor) have released" - text run at (10,71) width 132: "code that simulates..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,460) size 265x82 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 182x30 - RenderText {#text} at (10,11) size 182x30 - text run at (10,11) width 182: "DHTML Timeline/Keyframe" - text run at (10,26) width 70: "Animation" - RenderText {#text} at (79,26) size 5x15 - text run at (79,26) width 5: " " - RenderInline {description} at (10,26) size 241x45 - RenderText {#text} at (10,26) size 241x45 - text run at (83,26) width 168: "Tim Morgan is working on a" - text run at (10,41) width 235: "Flash-like timeline/keyframe extension" - text run at (10,56) width 148: "for his DHTML toolset...." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,552) size 265x97 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 157x30 - RenderText {#text} at (10,11) size 157x30 - text run at (10,11) width 157: "DynAPI 2.9 and Mozilla" - text run at (10,26) width 128: "compatibility ports" - RenderText {#text} at (137,26) size 5x15 - text run at (137,26) width 5: " " - RenderInline {description} at (10,26) size 240x60 - RenderText {#text} at (10,26) size 240x60 - text run at (141,26) width 107: "DynAPI 2.9 is the" - text run at (10,41) width 211: "latest release of the popular cross-" - text run at (10,56) width 240: "browser DHTML library, and is available" - text run at (10,71) width 204: "at Dan Steinman's original site...." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,659) size 265x67 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 155x15 - RenderText {#text} at (10,11) size 155x15 - text run at (10,11) width 155: "!lineDraw bookmarklet" - RenderText {#text} at (164,11) size 5x15 - text run at (164,11) width 5: " " - RenderInline {description} at (10,11) size 217x45 - RenderText {#text} at (10,11) size 217x45 - text run at (168,11) width 42: "Milov's" - text run at (10,26) width 217: "!lineDraw bookmarklet is in fact the" - text run at (10,41) width 174: "Coolest Bookmarklet Ever...." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,736) size 265x97 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 204x15 - RenderText {#text} at (10,11) size 204x15 - text run at (10,11) width 204: "Mozilla, DHTML and DOM links" - RenderText {#text} at (213,11) size 5x15 - text run at (213,11) width 5: " " - RenderInline {description} at (10,11) size 239x75 - RenderText {#text} at (10,11) size 239x75 - text run at (217,11) width 28: "Why" - text run at (10,26) width 214: "Mozilla Rules (Link via Dean) Steve" - text run at (10,41) width 239: "Champeon: Why DHTML Will Win. Glish" - text run at (10,56) width 199: "finds a not-quite-DOM-compliant" - text run at (10,71) width 196: "replacement for innerHTML. It..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,843) size 265x67 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 104x15 - RenderText {#text} at (10,11) size 104x15 - text run at (10,11) width 104: "Mozilla 1.0 RC2" - RenderText {#text} at (113,11) size 5x15 - text run at (113,11) width 5: " " - RenderInline {description} at (10,11) size 239x45 - RenderText {#text} at (10,11) size 239x45 - text run at (117,11) width 132: "I'm late for this train:" - text run at (10,26) width 235: "Mozilla 1.0 Release Candidate 2 is now" - text run at (10,41) width 71: "available...." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,920) size 265x97 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 239x30 - RenderText {#text} at (10,11) size 239x30 - text run at (10,11) width 239: "javascript: is deprecated. Don't use" - text run at (10,26) width 14: "it." - RenderText {#text} at (23,26) size 6x15 - text run at (23,26) width 6: " " - RenderInline {description} at (10,26) size 232x60 - RenderText {#text} at (10,26) size 232x60 - text run at (28,26) width 186: "Repeat after me: javascript: is" - text run at (10,41) width 232: "deprecated. Don't use it. javascript: is" - text run at (10,56) width 232: "deprecated. Don't use it. javascript: is" - text run at (10,71) width 147: "deprecated. Don't use..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,1027) size 265x67 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 178x15 - RenderText {#text} at (10,11) size 178x15 - text run at (10,11) width 178: "Conditional Script Loading" - RenderText {#text} at (0,0) size 0x0 - RenderInline {description} at (10,26) size 236x30 - RenderText {#text} at (10,26) size 236x30 - text run at (10,26) width 236: "Webreference: DOM-Based Conditional" - text run at (10,41) width 181: "Script Loading in JavaScript..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,1104) size 265x82 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 117x15 - RenderText {#text} at (10,11) size 117x15 - text run at (10,11) width 117: "Stories and Tools" - RenderText {#text} at (126,11) size 5x15 - text run at (126,11) width 5: " " - RenderInline {description} at (10,11) size 243x60 - RenderText {#text} at (10,11) size 243x60 - text run at (130,11) width 91: "Anil Dash talks" - text run at (10,26) width 200: "about Stories and Tools, drawing" - text run at (10,41) width 243: "comparisons between the Web as a text" - text run at (10,56) width 161: "medium and the Web as..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {item} at (1,1196) size 265x97 [bgcolor=#FFFFFF] [border: (1px solid #CCCCCC) none (1px solid #CCCCCC) none] - RenderInline {title} at (10,11) size 167x15 - RenderText {#text} at (10,11) size 167x15 - text run at (10,11) width 167: "Whole Lotto Gecko Links" - RenderText {#text} at (176,11) size 5x15 - text run at (176,11) width 5: " " - RenderInline {description} at (10,11) size 245x75 - RenderText {#text} at (10,11) size 245x75 - text run at (180,11) width 67: "AOL Gecko" - text run at (10,26) width 216: "Browser Detection Tips Establishing" - text run at (10,41) width 195: "Dreamweaver compatibility with" - text run at (10,56) width 245: "Netscape 6 Stylesheets and MIME Types" - text run at (10,71) width 66: "in Gecko..." - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 diff --git a/LayoutTests/platform/mac-ventura/fast/overflow/overflow-focus-ring-expected.txt b/LayoutTests/platform/mac-ventura/fast/overflow/overflow-focus-ring-expected.txt deleted file mode 100644 index fe2889cafe080..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/overflow/overflow-focus-ring-expected.txt +++ /dev/null @@ -1,48 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock (anonymous) at (0,0) size 784x18 - RenderText {#text} at (0,0) size 515x18 - text run at (0,0) width 515: "The focus ring of the following div should not extend beyond the size of the div." -layer at (8,26) size 500x400 scrollWidth 501 scrollHeight 648 - RenderBlock {DIV} at (0,18) size 500x400 - RenderText {#text} at (0,0) size 500x648 - text run at (0,0) width 500: "............................................................................................................................." - text run at (0,18) width 500: "............................................................................................................................." - text run at (0,36) width 500: "............................................................................................................................." - text run at (0,54) width 500: "............................................................................................................................." - text run at (0,72) width 500: "............................................................................................................................." - text run at (0,90) width 500: "............................................................................................................................." - text run at (0,108) width 500: "............................................................................................................................." - text run at (0,126) width 500: "............................................................................................................................." - text run at (0,144) width 500: "............................................................................................................................." - text run at (0,162) width 500: "............................................................................................................................." - text run at (0,180) width 500: "............................................................................................................................." - text run at (0,198) width 500: "............................................................................................................................." - text run at (0,216) width 500: "............................................................................................................................." - text run at (0,234) width 500: "............................................................................................................................." - text run at (0,252) width 500: "............................................................................................................................." - text run at (0,270) width 500: "............................................................................................................................." - text run at (0,288) width 500: "............................................................................................................................." - text run at (0,306) width 500: "............................................................................................................................." - text run at (0,324) width 500: "............................................................................................................................." - text run at (0,342) width 500: "............................................................................................................................." - text run at (0,360) width 500: "............................................................................................................................." - text run at (0,378) width 500: "............................................................................................................................." - text run at (0,396) width 500: "............................................................................................................................." - text run at (0,414) width 500: "............................................................................................................................." - text run at (0,432) width 500: "............................................................................................................................." - text run at (0,450) width 500: "............................................................................................................................." - text run at (0,468) width 500: "............................................................................................................................." - text run at (0,486) width 500: "............................................................................................................................." - text run at (0,504) width 500: "............................................................................................................................." - text run at (0,522) width 500: "............................................................................................................................." - text run at (0,540) width 500: "............................................................................................................................." - text run at (0,558) width 500: "............................................................................................................................." - text run at (0,576) width 500: "............................................................................................................................." - text run at (0,594) width 500: "............................................................................................................................." - text run at (0,612) width 500: "............................................................................................................................." - text run at (0,630) width 212: "....................................................." -caret: position 0 of child 0 {#text} of child 1 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt b/LayoutTests/platform/mac-ventura/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt deleted file mode 100644 index b667a7a201c76..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt +++ /dev/null @@ -1,16 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DIV} at (0,0) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,19) size 784x18 - RenderText {#text} at (0,0) size 4x18 - text run at (0,0) width 4: " " - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,37) size 784x0 -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 0 of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 1 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/fast/repaint/search-field-cancel-expected.txt b/LayoutTests/platform/mac-ventura/fast/repaint/search-field-cancel-expected.txt deleted file mode 100644 index 645f5fd06e0a0..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/repaint/search-field-cancel-expected.txt +++ /dev/null @@ -1,24 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 54x18 - text run at (0,0) width 54: "Test for " - RenderInline {A} at (53,0) size 310x18 [color=#0000EE] - RenderText {#text} at (53,0) size 310x18 - text run at (53,0) width 310: "https://bugs.webkit.org/show_bug.cgi?id=23093" - RenderText {#text} at (362,0) size 328x18 - text run at (362,0) width 328: ". The cancel button in a search field fails to redraw." - RenderBlock (anonymous) at (0,34) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] - RenderFlexibleBox {DIV} at (3,0) size 141x19 - RenderBlock {DIV} at (0,0) size 8x19 - RenderBlock {DIV} at (8,3) size 114x13 - RenderBlock {DIV} at (121,0) size 20x19 - RenderText {#text} at (0,0) size 0x0 -layer at (19,45) size 114x13 - RenderBlock {DIV} at (0,0) size 114x13 - RenderText {#text} at (0,0) size 52x13 - text run at (0,0) width 52: "some text" diff --git a/LayoutTests/platform/mac-ventura/fast/repaint/subtree-root-skipped-expected.txt b/LayoutTests/platform/mac-ventura/fast/repaint/subtree-root-skipped-expected.txt deleted file mode 100644 index 66142d9a36f4c..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/repaint/subtree-root-skipped-expected.txt +++ /dev/null @@ -1,22 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 -layer at (8,8) size 300x300 - RenderBlock (relative positioned) {DIV} at (0,0) size 300x300 [bgcolor=#F0F8FF] -layer at (8,8) size 200x200 - RenderBlock {DIV} at (0,0) size 200x200 [bgcolor=#C0C0C0] - RenderBlock (anonymous) at (0,0) size 200x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {DIV} at (0,19) size 200x18 - RenderText {#text} at (0,0) size 106x18 - text run at (0,0) width 106: "Selection is here" -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 29x13 - text run at (0,0) width 29: "PASS" -layer at (8,288) size 10x20 - RenderBlock (positioned) {DIV} at (0,280) size 10x20 [bgcolor=#ADD8E6] -caret: position 0 of child 0 {#text} of child 3 {DIV} of child 1 {DIV} of child 1 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/fast/replaced/replaced-breaking-expected.txt b/LayoutTests/platform/mac-ventura/fast/replaced/replaced-breaking-expected.txt deleted file mode 100644 index aa8727124f6c7..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/replaced/replaced-breaking-expected.txt +++ /dev/null @@ -1,68 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DIV} at (0,0) size 32x468 [border: (1px solid #FF0000)] - RenderTextControl {INPUT} at (1,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTextControl {INPUT} at (1,20) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderImage {IMG} at (1,39) size 27x27 [border: (1px solid #000000)] - RenderImage {IMG} at (1,66) size 27x27 [border: (1px solid #000000)] - RenderText {#text} at (0,0) size 0x0 - RenderButton {INPUT} at (1,93) size 43x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 27x13 - RenderText at (0,0) size 27x13 - text run at (0,0) width 27: "input" - RenderButton {INPUT} at (1,111) size 43x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 27x13 - RenderText at (0,0) size 27x13 - text run at (0,0) width 27: "input" - RenderText {#text} at (0,0) size 0x0 - RenderButton {BUTTON} at (1,129) size 51x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText {#text} at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderButton {BUTTON} at (1,147) size 51x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 35x13 - RenderText {#text} at (0,0) size 35x13 - text run at (0,0) width 35: "button" - RenderText {#text} at (0,0) size 0x0 - RenderMenuList {SELECT} at (1,165) size 63x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 63x18 - RenderText at (8,2) size 32x13 - text run at (8,2) width 32: "select" - RenderMenuList {SELECT} at (1,183) size 63x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 63x18 - RenderText at (8,2) size 32x13 - text run at (8,2) width 32: "select" - RenderText {#text} at (0,0) size 0x0 - RenderListBox {SELECT} at (1,201) size 49x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderListBox {SELECT} at (1,244) size 49x43 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {INPUT} at (3,290) size 12x12 - RenderBlock {INPUT} at (3,308) size 12x12 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {INPUT} at (3,326) size 12x12 - RenderBlock {INPUT} at (3,344) size 12x12 - RenderText {#text} at (0,0) size 0x0 - RenderIFrame {IFRAME} at (1,359) size 27x27 [border: (1px solid #000000)] - layer at (0,0) size 25x25 - RenderView at (0,0) size 25x25 - layer at (0,0) size 25x25 - RenderBlock {HTML} at (0,0) size 25x25 - RenderBody {BODY} at (8,8) size 9x9 - RenderIFrame {IFRAME} at (1,386) size 27x27 [border: (1px solid #000000)] - layer at (0,0) size 25x25 - RenderView at (0,0) size 25x25 - layer at (0,0) size 25x25 - RenderBlock {HTML} at (0,0) size 25x25 - RenderBody {BODY} at (8,8) size 9x9 - RenderText {#text} at (0,0) size 0x0 - RenderEmbeddedObject {EMBED} at (1,413) size 27x27 [border: (1px solid #000000)] - RenderEmbeddedObject {EMBED} at (1,440) size 27x27 [border: (1px solid #000000)] - RenderText {#text} at (0,0) size 0x0 -layer at (12,12) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (12,31) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/replaced/replaced-breaking-mixture-expected.txt b/LayoutTests/platform/mac-ventura/fast/replaced/replaced-breaking-mixture-expected.txt deleted file mode 100644 index ef6b5a1ded56a..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/replaced/replaced-breaking-mixture-expected.txt +++ /dev/null @@ -1,39 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {DIV} at (0,0) size 10x43 - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderImage {IMG} at (0,18) size 25x25 - RenderBlock {DIV} at (0,43) size 10x36 - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderMenuList {SELECT} at (0,18) size 53x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 53x18 - RenderText at (8,2) size 22x13 - text run at (8,2) width 22: "One" - RenderBlock {DIV} at (0,79) size 10x37 - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTextControl {INPUT} at (0,18) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {DIV} at (0,116) size 10x43 - RenderImage {IMG} at (0,0) size 25x25 - RenderText {#text} at (0,25) size 25x18 - text run at (0,25) width 25: "Foo" - RenderBlock {DIV} at (0,159) size 10x36 - RenderMenuList {SELECT} at (0,0) size 53x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 53x18 - RenderText at (8,2) size 22x13 - text run at (8,2) width 22: "One" - RenderText {#text} at (0,18) size 25x18 - text run at (0,18) width 25: "Foo" - RenderBlock {DIV} at (0,195) size 10x37 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,19) size 25x18 - text run at (0,19) width 25: "Foo" -layer at (11,108) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (11,206) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/table/003-expected.txt b/LayoutTests/platform/mac-ventura/fast/table/003-expected.txt deleted file mode 100644 index 36aaa105c9366..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/table/003-expected.txt +++ /dev/null @@ -1,75 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTable {TABLE} at (0,0) size 784x47 - RenderTableSection {TBODY} at (0,0) size 784x47 - RenderTableRow {TR} at (0,2) size 784x21 - RenderTableCell {TD} at (2,2) size 53x21 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 37x19 - text run at (1,1) width 37: "URL:" - RenderTableCell {TD} at (56,2) size 727x21 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 724x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {TR} at (0,25) size 784x20 - RenderTableCell {TD} at (2,25) size 781x20 [bgcolor=#FF0000] [r=1 c=0 rs=1 cs=2] - RenderText {#text} at (1,1) size 257x18 - text run at (1,1) width 257: "Alongwordtogiveyouanicebigminwidth." - RenderTable {TABLE} at (0,47) size 100x100 [bgcolor=#FF0000] [border: (2px outset #000000)] - RenderTableSection {TBODY} at (2,2) size 96x96 - RenderTableRow {TR} at (0,2) size 96x92 - RenderTableCell {TD} at (2,46) size 92x4 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderTable {TABLE} at (0,147) size 173x120 [border: (2px outset #000000)] - RenderTableSection {TBODY} at (2,2) size 169x116 - RenderTableRow {TR} at (0,2) size 169x22 - RenderTableCell {TD} at (2,2) size 165x22 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 32x18 - text run at (2,2) width 32: "hello" - RenderTableRow {TR} at (0,26) size 169x22 - RenderTableCell {TD} at (2,26) size 165x22 [border: (1px inset #000000)] [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 69x18 - text run at (2,2) width 69: "more hello" - RenderTableRow {TR} at (0,50) size 169x22 - RenderTableCell {TD} at (2,50) size 165x22 [border: (1px inset #000000)] [r=2 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 38x18 - text run at (2,2) width 38: "world" - RenderTableRow {TR} at (0,74) size 169x40 - RenderTableCell {TD} at (2,74) size 165x40 [border: (1px inset #000000)] [r=3 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 0x0 - RenderTable {TABLE} at (0,267) size 337x24 - RenderTableSection {TBODY} at (0,0) size 337x24 - RenderTableRow {TR} at (0,2) size 337x20 - RenderTableCell {TD} at (2,2) size 333x20 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 331x18 - text run at (1,1) width 234: "I should wrap and not have nowrap. " - text run at (234,1) width 98: "I really should." - RenderTable {TABLE} at (0,291) size 337x24 - RenderTableSection {TBODY} at (0,0) size 337x24 - RenderTableRow {TR} at (0,2) size 337x20 - RenderTableCell {TD} at (2,2) size 333x20 [r=0 c=0 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 331x18 - RenderText {#text} at (0,0) size 331x18 - text run at (0,0) width 234: "I should wrap and not have nowrap. " - text run at (233,0) width 98: "I really should." - RenderTable {TABLE} at (0,315) size 373x24 - RenderTableSection {TBODY} at (0,0) size 373x24 - RenderTableRow {TR} at (0,2) size 373x20 - RenderTableCell {TD} at (2,2) size 369x20 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 367x18 - text run at (1,1) width 147: "I should have nowrap. " - text run at (147,1) width 101: "I really should. " - text run at (247,1) width 121: "Definitely. Should." - RenderTable {TABLE} at (0,339) size 373x24 - RenderTableSection {TBODY} at (0,0) size 373x24 - RenderTableRow {TR} at (0,2) size 373x20 - RenderTableCell {TD} at (2,2) size 369x20 [r=0 c=0 rs=1 cs=1] - RenderBlock {DIV} at (1,1) size 367x18 - RenderText {#text} at (0,0) size 367x18 - text run at (0,0) width 147: "I should have nowrap. " - text run at (146,0) width 101: "I really should. " - text run at (246,0) width 121: "Definitely. Should." -layer at (69,14) size 717x13 - RenderBlock {DIV} at (3,3) size 718x13 -layer at (14,233) size 161x36 clip at (15,234) size 159x34 - RenderTextControl {TEXTAREA} at (2,2) size 161x36 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 155x13 diff --git a/LayoutTests/platform/mac-ventura/fast/table/colspanMinWidth-expected.txt b/LayoutTests/platform/mac-ventura/fast/table/colspanMinWidth-expected.txt deleted file mode 100644 index 7754f716008a6..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/table/colspanMinWidth-expected.txt +++ /dev/null @@ -1,24 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTable {TABLE} at (0,0) size 167x39 - RenderTableSection {TBODY} at (0,0) size 167x39 - RenderTableRow {TR} at (0,2) size 167x2 - RenderTableCell {TD} at (2,2) size 3x2 [bgcolor=#0000FF] [r=0 c=0 rs=1 cs=1] - RenderTableRow {TR} at (0,6) size 167x0 - RenderTableCell {TD} at (2,6) size 159x2 [bgcolor=#008000] [r=1 c=0 rs=2 cs=2] - RenderTableRow {TR} at (0,8) size 167x0 - RenderTableCell {TD} at (162,21) size 3x3 [bgcolor=#FF0000] [r=2 c=2 rs=2 cs=1] - RenderTableRow {TR} at (0,10) size 167x27 - RenderTableCell {TD} at (2,10) size 159x27 [bgcolor=#00FFFF] [r=3 c=0 rs=1 cs=2] - RenderTable {TABLE} at (1,1) size 157x25 - RenderTableSection {TBODY} at (0,0) size 157x25 - RenderTableRow {TR} at (0,2) size 157x21 - RenderTableCell {TD} at (2,11) size 2x3 [bgcolor=#FF00FF] [r=0 c=0 rs=1 cs=1] - RenderTableCell {TD} at (6,2) size 149x21 [bgcolor=#FFFF00] [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (21,25) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/table/spanOverlapRepaint-expected.txt b/LayoutTests/platform/mac-ventura/fast/table/spanOverlapRepaint-expected.txt deleted file mode 100644 index 9bb24e83c8f1e..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/table/spanOverlapRepaint-expected.txt +++ /dev/null @@ -1,26 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTable {TABLE} at (0,0) size 171x45 - RenderTableSection {TBODY} at (0,0) size 171x45 - RenderTableRow {TR} at (0,2) size 171x2 - RenderTableCell {TD} at (2,2) size 6x2 [r=0 c=0 rs=1 cs=1] - RenderTableRow {TR} at (0,6) size 171x0 - RenderTableCell {TD} at (2,6) size 6x2 [r=1 c=0 rs=2 cs=1] - RenderTableRow {TR} at (0,8) size 171x0 - RenderTableCell {TD} at (10,24) size 159x3 [r=2 c=1 rs=2 cs=1] - RenderTableRow {TR} at (0,10) size 171x33 - RenderTableCell {TD} at (2,10) size 167x33 [r=3 c=0 rs=1 cs=2] - RenderTable {TABLE} at (1,1) size 165x31 [border: (2px outset #000000)] - RenderTableSection {TBODY} at (2,2) size 161x27 - RenderTableRow {TR} at (0,2) size 161x23 - RenderTableCell {TD} at (2,11) size 4x5 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderTableCell {TD} at (8,2) size 151x23 [border: (1px inset #000000)] [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (2,2) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (26,28) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 26x13 - text run at (0,0) width 26: "hello" diff --git a/LayoutTests/platform/mac-ventura/fast/table/text-field-baseline-expected.txt b/LayoutTests/platform/mac-ventura/fast/table/text-field-baseline-expected.txt deleted file mode 100644 index 02a5fdc79aa1c..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/table/text-field-baseline-expected.txt +++ /dev/null @@ -1,102 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x391 - RenderBlock {HTML} at (0,0) size 800x391 - RenderBody {BODY} at (8,16) size 784x359 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 177x18 - text run at (0,0) width 177: "This is a regression test for " - RenderInline {I} at (0,0) size 750x36 - RenderInline {A} at (176,0) size 354x18 [color=#0000EE] - RenderText {#text} at (176,0) size 354x18 - text run at (176,0) width 354: "http://bugzilla.opendarwin.org/show_bug.cgi?id=9122" - RenderText {#text} at (0,0) size 750x36 - text run at (529,0) width 5: " " - text run at (533,0) width 217: "REGRESSION: Incorrect vertical" - text run at (0,18) width 312: "position for text fields in a \"display: table\" block" - RenderText {#text} at (311,18) size 5x18 - text run at (311,18) width 5: "." - RenderBlock {P} at (0,52) size 784x36 - RenderText {#text} at (0,0) size 752x36 - text run at (0,0) width 752: "Type something in the text field. Resize the window. The text field should not jump down. Delete what you typed and" - text run at (0,18) width 324: "resize the window. The text field should not move." - RenderBlock {FORM} at (0,104) size 784x255 - RenderTable {DL} at (0,0) size 172x19 - RenderTableSection (anonymous) at (0,0) size 172x19 - RenderTableRow {DIV} at (0,0) size 172x19 - RenderTableCell {DT} at (0,0) size 25x18 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTableCell {DD} at (24,0) size 148x19 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,53) size 784x36 - RenderText {#text} at (0,0) size 771x36 - text run at (0,0) width 771: "And here's more. There should not be a difference in distance between the labels, nor any difference in distance between" - text run at (0,18) width 91: "the text fields." - RenderTable {DL} at (0,105) size 237x150 - RenderTableSection (anonymous) at (0,0) size 237x150 - RenderTableRow {DIV} at (0,0) size 237x19 - RenderTableCell {DT} at (0,0) size 25x18 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTableCell {DD} at (24,0) size 213x19 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {DIV} at (0,19) size 237x19 - RenderTableCell {DT} at (0,19) size 25x18 [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTableCell {DD} at (24,19) size 213x19 [r=1 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {DIV} at (0,38) size 237x19 - RenderTableCell {DT} at (0,38) size 25x18 [r=2 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTableCell {DD} at (24,38) size 213x19 [r=2 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {DIV} at (0,57) size 237x19 - RenderTableCell {DT} at (0,57) size 25x18 [r=3 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTableCell {DD} at (24,57) size 213x19 [r=3 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {DIV} at (0,76) size 237x19 - RenderTableCell {DT} at (0,76) size 25x18 [r=4 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTableCell {DD} at (24,76) size 213x19 [r=4 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {DIV} at (0,95) size 237x19 - RenderTableCell {DT} at (0,95) size 25x18 [r=5 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTableCell {DD} at (24,95) size 213x19 [r=5 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableRow {DIV} at (0,114) size 237x36 - RenderTableCell {DT} at (0,132) size 25x18 [r=6 c=0 rs=1 cs=1] - RenderText {#text} at (0,18) size 25x18 - text run at (0,0) width 25: "Foo" - RenderTableCell {DD} at (24,114) size 213x36 [r=6 c=1 rs=1 cs=1] - RenderBlock {DIV} at (0,0) size 212x36 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 212x18 - text run at (0,18) width 212: "Bar (should be aligned with Foo)" -layer at (36,123) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (8,155) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,35) size 784x2 [color=#808080] [border: (1px inset #808080)] -layer at (36,228) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (36,247) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (36,266) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 18x13 - text run at (0,0) width 18: "Bar" -layer at (36,285) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 18x13 - text run at (0,0) width 18: "Bar" -layer at (36,304) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (36,323) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/fast/text/basic/generic-family-reset-expected.txt b/LayoutTests/platform/mac-ventura/fast/text/basic/generic-family-reset-expected.txt deleted file mode 100644 index ccc0ab19bf1f5..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/basic/generic-family-reset-expected.txt +++ /dev/null @@ -1,90 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {H3} at (0,0) size 784x23 - RenderText {#text} at (0,0) size 491x23 - text run at (0,0) width 491: "tt's, font-family inheriting and font-size: a bug" - RenderTable {TABLE} at (0,41) size 784x377 - RenderTableSection {TBODY} at (0,0) size 784x376 - RenderTableRow {TR} at (0,10) size 784x211 - RenderTableCell {TD} at (10,10) size 764x211 [r=0 c=0 rs=1 cs=2] - RenderText {#text} at (1,1) size 336x19 - text run at (1,1) width 336: "The css in the head of this file is like this:" - RenderBR {BR} at (336,1) size 1x19 - RenderBR {BR} at (1,20) size 0x19 - RenderText {#text} at (1,39) size 103x19 - text run at (1,39) width 103: "html, body {" - RenderBR {BR} at (103,39) size 1x19 - RenderText {#text} at (1,58) size 198x19 - text run at (1,58) width 198: " font-family: Verdana;" - RenderBR {BR} at (198,58) size 1x19 - RenderText {#text} at (1,77) size 11x19 - text run at (1,77) width 11: "}" - RenderBR {BR} at (11,77) size 1x19 - RenderText {#text} at (1,96) size 78x19 - text run at (1,96) width 78: "tt, span {" - RenderBR {BR} at (78,96) size 1x19 - RenderText {#text} at (1,115) size 164x19 - text run at (1,115) width 164: " font-size: 0.8em;" - RenderBR {BR} at (164,115) size 1x19 - RenderText {#text} at (1,134) size 11x19 - text run at (1,134) width 11: "}" - RenderBR {BR} at (11,134) size 1x19 - RenderBR {BR} at (1,153) size 0x19 - RenderText {#text} at (1,172) size 739x38 - text run at (1,172) width 739: "The two columns below show that inheriting the font does not correctly inherit the font-size" - text run at (1,191) width 136: "for a block." - RenderBR {BR} at (136,191) size 1x19 - RenderTableRow {TR} at (0,231) size 784x21 - RenderTableCell {TH} at (10,231) size 377x21 [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (167,1) size 43x19 - text run at (167,1) width 43: "" - RenderTableCell {TH} at (397,231) size 377x21 [r=1 c=1 rs=1 cs=1] - RenderText {#text} at (153,1) size 71x19 - text run at (153,1) width 71: "" - RenderTableRow {TR} at (0,262) size 784x18 - RenderTableCell {TD} at (10,262) size 377x18 [r=2 c=0 rs=1 cs=1] - RenderInline {TT} at (1,1) size 258x16 - RenderText {#text} at (1,1) size 258x16 - text run at (1,1) width 258: "font-family: Verdana; font-size: 0.8em;" - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (397,262) size 377x18 [r=2 c=1 rs=1 cs=1] - RenderInline {SPAN} at (1,1) size 258x16 - RenderText {#text} at (1,1) size 258x16 - text run at (1,1) width 258: "font-family: Verdana; font-size: 0.8em;" - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,290) size 784x18 - RenderTableCell {TD} at (10,290) size 377x18 [r=3 c=0 rs=1 cs=1] - RenderInline {TT} at (1,1) size 315x16 - RenderText {#text} at (1,1) size 315x16 - text run at (1,1) width 315: "font-family: inherit (Verdana); font-size: 0.8em;" - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (397,290) size 377x18 [r=3 c=1 rs=1 cs=1] - RenderInline {SPAN} at (1,1) size 246x16 - RenderText {#text} at (1,1) size 246x16 - text run at (1,1) width 246: "font-family: inherit; font-size: 0.8em;" - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,318) size 784x21 - RenderTableCell {TD} at (10,318) size 377x21 [r=4 c=0 rs=1 cs=1] - RenderInline {TT} at (1,1) size 322x19 - RenderText {#text} at (1,1) size 322x19 - text run at (1,1) width 322: "font-family: Verdana; font-size: 1.0em;" - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (397,318) size 377x21 [r=4 c=1 rs=1 cs=1] - RenderInline {SPAN} at (1,1) size 322x19 - RenderText {#text} at (1,1) size 322x19 - text run at (1,1) width 322: "font-family: Verdana; font-size: 1.0em;" - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,349) size 784x17 - RenderTableCell {TD} at (10,350) size 377x15 [r=5 c=0 rs=1 cs=1] - RenderInline {TT} at (1,2) size 194x13 - RenderText {#text} at (1,2) size 194x13 - text run at (1,1) width 194: "default font; font-size: 0.8em;" - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (397,349) size 377x17 [r=5 c=1 rs=1 cs=1] - RenderInline {SPAN} at (1,1) size 300x15 - RenderText {#text} at (1,1) size 300x15 - text run at (1,1) width 300: "font-family: courier; font-size: 0.8em;" - RenderText {#text} at (0,0) size 0x0 diff --git a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/linedash-COLR-expected-mismatch.html b/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/linedash-COLR-expected-mismatch.html deleted file mode 100644 index abee612fb223c..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/linedash-COLR-expected-mismatch.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - diff --git a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-COLR-expected.html b/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-COLR-expected.html deleted file mode 100644 index 8d39f1b7f68c3..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-COLR-expected.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - diff --git a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-shadow-COLR-expected.html b/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-shadow-COLR-expected.html deleted file mode 100644 index d53a28a39d2ce..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-shadow-COLR-expected.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - diff --git a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-shadow-ctm-COLR-expected.html b/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-shadow-ctm-COLR-expected.html deleted file mode 100644 index 70dac27e475d7..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-color-shadow-ctm-COLR-expected.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - diff --git a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-gradient-COLR-expected.html b/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-gradient-COLR-expected.html deleted file mode 100644 index 1a30137530e16..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/canvas-color-fonts/stroke-gradient-COLR-expected.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/LayoutTests/platform/mac-ventura/fast/text/drawBidiText-expected.txt b/LayoutTests/platform/mac-ventura/fast/text/drawBidiText-expected.txt deleted file mode 100644 index 4b9d4f45b577e..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/drawBidiText-expected.txt +++ /dev/null @@ -1,10 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 285x18 - text run at (0,0) width 285: "This tests GraphicsContext::drawBidiText()." - RenderListBox {SELECT} at (0,34) size 330x199 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderListBox {SELECT} at (0,233) size 377x18 [bgcolor=#FFFFFF] [border: (1px inset #808080)] diff --git a/LayoutTests/platform/mac-ventura/fast/text/international/bidi-listbox-atsui-expected.txt b/LayoutTests/platform/mac-ventura/fast/text/international/bidi-listbox-atsui-expected.txt deleted file mode 100644 index 048a5c28239f6..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/international/bidi-listbox-atsui-expected.txt +++ /dev/null @@ -1,45 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 592x18 - text run at (0,0) width 592: "This tests that bidirectional text is correctly rendered when using ATSUI in list box controls." - RenderBR {BR} at (591,0) size 1x18 - RenderText {#text} at (0,18) size 578x18 - text run at (0,18) width 578: "The order of the text below each list box should match the order of the select's option text." - RenderBlock (anonymous) at (0,52) size 784x47 - RenderText {#text} at (0,0) size 102x18 - text run at (0,0) width 102: "1) direction: rtl;" - RenderBR {BR} at (101,0) size 1x18 - RenderListBox {SELECT} at (0,18) size 78x29 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBR {BR} at (78,26) size 0x18 - RenderBlock {DIV} at (0,99) size 100x19 - RenderText {#text} at (18,1) size 82x18 - text run at (18,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - text run at (77,1) width 23: "a\x{300}bc" - RenderBlock (anonymous) at (0,118) size 784x65 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 102x18 - text run at (0,18) width 102: "2) direction: ltr;" - RenderBR {BR} at (101,18) size 1x18 - RenderListBox {SELECT} at (0,36) size 78x29 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBR {BR} at (78,44) size 0x18 - RenderBlock {DIV} at (0,183) size 100x19 - RenderText {#text} at (0,1) size 82x18 - text run at (0,1) width 23: "a\x{300}bc" - text run at (22,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBlock (anonymous) at (0,202) size 784x65 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 72x18 - text run at (0,18) width 72: "3) No style" - RenderBR {BR} at (71,18) size 1x18 - RenderListBox {SELECT} at (0,36) size 78x29 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBR {BR} at (78,44) size 0x18 - RenderBlock {DIV} at (0,267) size 100x19 - RenderText {#text} at (0,1) size 82x18 - text run at (0,1) width 23: "a\x{300}bc" - text run at (22,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBlock (anonymous) at (0,286) size 784x18 - RenderBR {BR} at (0,0) size 0x18 diff --git a/LayoutTests/platform/mac-ventura/fast/text/international/bidi-listbox-expected.txt b/LayoutTests/platform/mac-ventura/fast/text/international/bidi-listbox-expected.txt deleted file mode 100644 index d737c94110c9a..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/international/bidi-listbox-expected.txt +++ /dev/null @@ -1,45 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 465x18 - text run at (0,0) width 465: "This tests that bidirectional text is correctly rendered in list box controls." - RenderBR {BR} at (464,0) size 1x18 - RenderText {#text} at (0,18) size 578x18 - text run at (0,18) width 578: "The order of the text below each list box should match the order of the select's option text." - RenderBlock (anonymous) at (0,52) size 784x47 - RenderText {#text} at (0,0) size 102x18 - text run at (0,0) width 102: "1) direction: rtl;" - RenderBR {BR} at (101,0) size 1x18 - RenderListBox {SELECT} at (0,18) size 78x29 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBR {BR} at (78,26) size 0x18 - RenderBlock {DIV} at (0,99) size 100x19 - RenderText {#text} at (18,1) size 82x18 - text run at (18,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - text run at (77,1) width 23: "abc" - RenderBlock (anonymous) at (0,118) size 784x65 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 102x18 - text run at (0,18) width 102: "2) direction: ltr;" - RenderBR {BR} at (101,18) size 1x18 - RenderListBox {SELECT} at (0,36) size 78x29 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBR {BR} at (78,44) size 0x18 - RenderBlock {DIV} at (0,183) size 100x19 - RenderText {#text} at (0,1) size 82x18 - text run at (0,1) width 23: "abc" - text run at (22,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBlock (anonymous) at (0,202) size 784x65 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 72x18 - text run at (0,18) width 72: "3) No style" - RenderBR {BR} at (71,18) size 1x18 - RenderListBox {SELECT} at (0,36) size 78x29 [bgcolor=#FFFFFF] [border: (1px inset #808080)] - RenderBR {BR} at (78,44) size 0x18 - RenderBlock {DIV} at (0,267) size 100x19 - RenderText {#text} at (0,1) size 82x18 - text run at (0,1) width 23: "abc" - text run at (22,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBlock (anonymous) at (0,286) size 784x18 - RenderBR {BR} at (0,0) size 0x18 diff --git a/LayoutTests/platform/mac-ventura/fast/text/international/bidi-menulist-expected.txt b/LayoutTests/platform/mac-ventura/fast/text/international/bidi-menulist-expected.txt deleted file mode 100644 index ec9299f1eb383..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/international/bidi-menulist-expected.txt +++ /dev/null @@ -1,58 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {P} at (0,0) size 784x54 - RenderText {#text} at (0,0) size 458x18 - text run at (0,0) width 458: "This tests that bidirectional text is correctly rendered in popup controls." - RenderBR {BR} at (457,0) size 1x18 - RenderText {#text} at (0,18) size 773x36 - text run at (0,18) width 773: "The order of the text below each popup button should match the order of the select's option text, and the order of the text" - text run at (0,36) width 124: "in the popup menu." - RenderBlock (anonymous) at (0,70) size 784x36 - RenderText {#text} at (0,0) size 286x18 - text run at (0,0) width 286: "1) direction: rtl; -webkit-rtl-ordering: logical" - RenderBR {BR} at (285,0) size 1x18 - RenderMenuList {SELECT} at (0,18) size 100x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 100x18 - RenderText at (31,2) size 61x13 - text run at (31,2) width 42 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - text run at (72,2) width 20: "abc" - RenderBR {BR} at (100,17) size 0x18 - RenderBlock {DIV} at (0,106) size 100x19 - RenderText {#text} at (0,1) size 82x18 - text run at (0,1) width 23: "abc" - text run at (22,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBlock (anonymous) at (0,125) size 784x54 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 118x18 - text run at (0,18) width 118: "2) text-align: right" - RenderBR {BR} at (117,18) size 1x18 - RenderMenuList {SELECT} at (0,36) size 200x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 200x18 - RenderText at (8,2) size 61x13 - text run at (8,2) width 20: "abc" - text run at (27,2) width 42 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBR {BR} at (200,35) size 0x18 - RenderBlock {DIV} at (0,179) size 200x19 - RenderText {#text} at (0,1) size 82x18 - text run at (0,1) width 23: "abc" - text run at (22,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBlock (anonymous) at (0,198) size 784x54 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 72x18 - text run at (0,18) width 72: "3) No style" - RenderBR {BR} at (71,18) size 1x18 - RenderMenuList {SELECT} at (0,36) size 100x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 100x18 - RenderText at (8,2) size 61x13 - text run at (8,2) width 20: "abc" - text run at (27,2) width 42 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBR {BR} at (100,35) size 0x18 - RenderBlock {DIV} at (0,252) size 100x19 - RenderText {#text} at (0,1) size 82x18 - text run at (0,1) width 23: "abc" - text run at (22,1) width 60 RTL: "\x{5D0}\x{5E4}\x{5E8}\x{5E1}\x{5DE}\x{5D5}\x{5DF}" - RenderBlock (anonymous) at (0,271) size 784x18 - RenderBR {BR} at (0,0) size 0x18 diff --git a/LayoutTests/platform/mac-ventura/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt b/LayoutTests/platform/mac-ventura/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt deleted file mode 100644 index 91b624640db78..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt +++ /dev/null @@ -1,127 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x514 - RenderBlock {HTML} at (0,0) size 800x514 - RenderBody {BODY} at (8,16) size 784x490 - RenderBlock {P} at (0,0) size 784x18 - RenderText {#text} at (0,0) size 709x18 - text run at (0,0) width 497: "Verify that the alignment and writing direction of each selected item matches " - text run at (496,0) width 213: "the one below the pop-up button." - RenderBlock {DIV} at (0,34) size 784x228 - RenderMenuList {SELECT} at (0,0) size 500x21 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 500x21 - RenderText at (8,2) size 160x16 - text run at (8,2) width 31: "First " - text run at (38,2) width 49 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" - text run at (86,2) width 17: "03" - text run at (102,2) width 38 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} (" - text run at (139,2) width 29: " fifth" - RenderBlock {DIV} at (0,21) size 470x36 - RenderText {#text} at (10,10) size 163x16 - text run at (10,10) width 32: "First " - text run at (41,10) width 49 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" - text run at (89,10) width 17: "03" - text run at (105,10) width 37 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} (" - text run at (141,10) width 32: " fifth" - RenderMenuList {SELECT} at (0,57) size 500x21 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 500x21 - RenderText at (8,2) size 160x16 - text run at (8,2) width 25: "fifth" - text run at (32,2) width 5 RTL: " " - text run at (36,2) width 41 RTL: "\x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" - text run at (76,2) width 4 RTL: " " - text run at (79,2) width 6 RTL: ")" - text run at (84,2) width 18: "03" - text run at (101,2) width 5 RTL: "(" - text run at (105,2) width 5 RTL: " " - text run at (109,2) width 29 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4}" - text run at (137,2) width 5 RTL: " " - text run at (141,2) width 27: "First" - RenderBlock {DIV} at (0,78) size 470x36 - RenderText {#text} at (10,10) size 163x16 - text run at (10,10) width 27: "fifth" - text run at (36,10) width 52 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} " - text run at (87,10) width 18: "03" - text run at (104,10) width 41 RTL: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} (" - text run at (144,10) width 29: "First" - RenderMenuList {SELECT} at (0,114) size 500x21 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 500x21 - RenderText at (8,2) size 160x16 - text run at (8,2) width 160: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" - RenderBlock {DIV} at (0,135) size 470x36 - RenderText {#text} at (10,10) size 163x16 - text run at (10,10) width 163: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" - RenderMenuList {SELECT} at (0,171) size 500x21 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 500x21 - RenderText at (8,2) size 160x16 - text run at (8,2) width 25 RTL: "fifth" - text run at (32,2) width 5 RTL: " " - text run at (36,2) width 41 RTL: "\x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" - text run at (76,2) width 4 RTL: " " - text run at (79,2) width 27 RTL: "(03)" - text run at (105,2) width 5 RTL: " " - text run at (109,2) width 29 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4}" - text run at (137,2) width 5 RTL: " " - text run at (141,2) width 27 RTL: "First" - RenderBlock {DIV} at (0,192) size 470x36 - RenderText {#text} at (10,10) size 163x16 - text run at (10,10) width 163 RTL: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" - RenderBlock {DIV} at (0,262) size 784x228 - RenderMenuList {SELECT} at (0,0) size 500x21 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 500x21 - RenderText at (332,2) size 160x16 - text run at (332,2) width 31: "First " - text run at (362,2) width 50 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" - text run at (411,2) width 17: "03" - text run at (427,2) width 37 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} (" - text run at (463,2) width 29: " fifth" - RenderBlock {DIV} at (0,21) size 470x36 - RenderText {#text} at (297,10) size 163x16 - text run at (297,10) width 33: "First " - text run at (329,10) width 48 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" - text run at (376,10) width 18: "03" - text run at (393,10) width 37 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} (" - text run at (429,10) width 31: " fifth" - RenderMenuList {SELECT} at (0,57) size 500x21 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 500x21 - RenderText at (332,2) size 160x16 - text run at (332,2) width 25: "fifth" - text run at (356,2) width 5 RTL: " " - text run at (360,2) width 41 RTL: "\x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" - text run at (400,2) width 5 RTL: " " - text run at (404,2) width 6 RTL: ")" - text run at (409,2) width 17: "03" - text run at (425,2) width 6 RTL: "(" - text run at (430,2) width 4 RTL: " " - text run at (433,2) width 29 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4}" - text run at (461,2) width 5 RTL: " " - text run at (465,2) width 27: "First" - RenderBlock {DIV} at (0,78) size 470x36 - RenderText {#text} at (297,10) size 163x16 - text run at (297,10) width 28: "fifth" - text run at (324,10) width 52 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} " - text run at (375,10) width 17: "03" - text run at (391,10) width 42 RTL: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} (" - text run at (432,10) width 28: "First" - RenderMenuList {SELECT} at (0,114) size 500x21 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 500x21 - RenderText at (332,2) size 160x16 - text run at (332,2) width 160: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" - RenderBlock {DIV} at (0,135) size 470x36 - RenderText {#text} at (297,10) size 163x16 - text run at (297,10) width 163: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" - RenderMenuList {SELECT} at (0,171) size 500x21 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 500x21 - RenderText at (332,2) size 160x16 - text run at (332,2) width 25 RTL: "fifth" - text run at (356,2) width 5 RTL: " " - text run at (360,2) width 41 RTL: "\x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" - text run at (400,2) width 5 RTL: " " - text run at (404,2) width 27 RTL: "(03)" - text run at (430,2) width 4 RTL: " " - text run at (433,2) width 29 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4}" - text run at (461,2) width 5 RTL: " " - text run at (465,2) width 27 RTL: "First" - RenderBlock {DIV} at (0,192) size 470x36 - RenderText {#text} at (297,10) size 163x16 - text run at (297,10) width 163 RTL: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" diff --git a/LayoutTests/platform/mac-ventura/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt b/LayoutTests/platform/mac-ventura/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt deleted file mode 100644 index fa948a1656840..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt +++ /dev/null @@ -1,51 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x300 - RenderBlock {HTML} at (0,0) size 800x300 - RenderBody {BODY} at (8,8) size 784x284 - RenderBlock {DIV} at (0,0) size 784x284 - RenderBlock (anonymous) at (0,0) size 784x36 - RenderText {#text} at (0,0) size 777x36 - text run at (0,0) width 777: "In all four cases below, the exclamation mark should be on the left side of the first line and on the right side of the second" - text run at (0,18) width 28: "line." - RenderBlock {DIV} at (0,36) size 784x248 - RenderBR {BR} at (371,44) size 0x18 - RenderBR {BR} at (371,106) size 0x18 - RenderBR {BR} at (371,168) size 0x18 - RenderText {#text} at (0,0) size 0x0 -layer at (8,44) size 371x58 clip at (9,45) size 369x56 - RenderTextControl {TEXTAREA} at (0,0) size 371x58 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 365x39 - RenderText {#text} at (0,0) size 365x26 - text run at (336,0) width 29 RTL: "\x{5E9}\x{5DC}\x{5D5}\x{5DD}!" - text run at (365,0) width 0: " " - text run at (0,13) width 29: "hello!" - text run at (28,13) width 1: " " - RenderBR {BR} at (0,26) size 0x13 -layer at (8,106) size 371x58 clip at (9,107) size 369x56 - RenderTextControl {TEXTAREA} at (0,62) size 371x58 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 365x39 - RenderText {#text} at (0,0) size 365x26 - text run at (336,0) width 29 RTL: "\x{5E9}\x{5DC}\x{5D5}\x{5DD}!" - text run at (365,0) width 0: " " - text run at (0,13) width 29: "hello!" - text run at (28,13) width 1: " " - RenderBR {BR} at (0,26) size 0x13 -layer at (8,168) size 371x58 clip at (9,169) size 369x56 - RenderTextControl {TEXTAREA} at (0,124) size 371x58 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 365x39 - RenderText {#text} at (0,0) size 365x26 - text run at (336,0) width 29 RTL: "\x{5E9}\x{5DC}\x{5D5}\x{5DD}!" - text run at (365,0) width 0: " " - text run at (0,13) width 29: "hello!" - text run at (28,13) width 1: " " - RenderBR {BR} at (0,26) size 0x13 -layer at (8,230) size 371x58 clip at (9,231) size 369x56 - RenderTextControl {TEXTAREA} at (0,186) size 371x58 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 365x39 - RenderText {#text} at (0,0) size 365x26 - text run at (336,0) width 29 RTL: "\x{5E9}\x{5DC}\x{5D5}\x{5DD}!" - text run at (365,0) width 0: " " - text run at (0,13) width 29: "hello!" - text run at (28,13) width 1: " " - RenderBR {BR} at (0,26) size 0x13 diff --git a/LayoutTests/platform/mac-ventura/fast/text/resources/Ahem-COLR.ttf b/LayoutTests/platform/mac-ventura/fast/text/resources/Ahem-COLR.ttf deleted file mode 100644 index c223a55430659..0000000000000 Binary files a/LayoutTests/platform/mac-ventura/fast/text/resources/Ahem-COLR.ttf and /dev/null differ diff --git a/LayoutTests/platform/mac-ventura/fast/text/textIteratorNilRenderer-expected.txt b/LayoutTests/platform/mac-ventura/fast/text/textIteratorNilRenderer-expected.txt deleted file mode 100644 index 8c1efc030e316..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/text/textIteratorNilRenderer-expected.txt +++ /dev/null @@ -1,34 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {CENTER} at (0,0) size 784x53 - RenderBlock {FORM} at (0,0) size 784x19 - RenderTable {TABLE} at (46,0) size 692x19 - RenderTableSection {TBODY} at (0,0) size 692x19 - RenderTableRow {TR} at (0,0) size 692x19 - RenderTableCell {TD} at (0,0) size 150x19 [r=0 c=0 rs=2 cs=1] - RenderText {#text} at (0,0) size 4x19 - text run at (0,0) width 4: " " - RenderTableCell {TD} at (150,0) size 287x19 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (0,0) size 287x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (436,0) size 96x19 [r=0 c=2 rs=1 cs=1] - RenderButton {INPUT} at (0,0) size 96x19 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 80x13 - RenderText at (0,0) size 80x13 - text run at (0,0) width 80: "Search Froogle" - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (531,0) size 161x19 [r=0 c=3 rs=2 cs=1] - RenderInline {LABEL} at (10,3) size 115x14 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {INPUT} at (12,3) size 12x13 - RenderText {#text} at (26,3) size 99x14 - text run at (26,3) width 99: " Remember this location" - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,35) size 784x18 - RenderBR {BR} at (392,0) size 0x18 -layer at (207,11) size 281x13 - RenderBlock {DIV} at (3,3) size 281x13 -caret: position 1 of child 0 {#text} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 1 {TABLE} of child 1 {FORM} of child 1 {CENTER} of body diff --git a/LayoutTests/platform/mac-ventura/fast/transforms/transformed-focused-text-input-expected.txt b/LayoutTests/platform/mac-ventura/fast/transforms/transformed-focused-text-input-expected.txt deleted file mode 100644 index b6c580c82099e..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/transforms/transformed-focused-text-input-expected.txt +++ /dev/null @@ -1,12 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 -layer at (8,8) size 784x19 - RenderBlock {DIV} at (0,0) size 784x19 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -caret: position 0 of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 1 {DIV} of body diff --git a/LayoutTests/platform/mac-ventura/fast/url/url-hostname-encoding-expected.txt b/LayoutTests/platform/mac-ventura/fast/url/url-hostname-encoding-expected.txt deleted file mode 100644 index ba20539995b3a..0000000000000 --- a/LayoutTests/platform/mac-ventura/fast/url/url-hostname-encoding-expected.txt +++ /dev/null @@ -1,28 +0,0 @@ -Test that setting the host and hostname attributes of URL objects uses IDNA2008. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - - -PASS url.hostname is 'xn--bcher-kva.de' -PASS url.hostname is 'xn--fa-hia.de' -PASS url.hostname is 'xn--nxasmm1c.com' -PASS url.hostname is 'xn--10cl1a0b660p.com' -PASS url.hostname is 'xn--mgba3gch31f060k.com' -PASS url.hostname is 'lookout.net' -PASS url.hostname is 'google.com' -FAIL url.hostname should be xn--zca.com. Was ss.com. -FAIL url.hostname should be xn--zca.foo.com. Was ss.foo.com. -PASS url.host is 'xn--bcher-kva.de' -PASS url.host is 'xn--fa-hia.de' -PASS url.host is 'xn--nxasmm1c.com' -PASS url.host is 'xn--10cl1a0b660p.com' -PASS url.host is 'xn--mgba3gch31f060k.com' -PASS url.host is 'lookout.net' -PASS url.host is 'google.com' -FAIL url.host should be xn--zca.com. Was ss.com. -FAIL url.host should be xn--zca.foo.com. Was ss.foo.com. -PASS successfullyParsed is true -Some tests failed. - -TEST COMPLETE - diff --git a/LayoutTests/platform/mac-ventura/http/tests/navigation/javascriptlink-frames-expected.txt b/LayoutTests/platform/mac-ventura/http/tests/navigation/javascriptlink-frames-expected.txt deleted file mode 100644 index 7921cb62df47c..0000000000000 --- a/LayoutTests/platform/mac-ventura/http/tests/navigation/javascriptlink-frames-expected.txt +++ /dev/null @@ -1,133 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderFrameSet {FRAMESET} at (0,0) size 800x600 - RenderFrame {FRAME} at (0,0) size 800x534 - layer at (0,0) size 785x1538 - RenderView at (0,0) size 785x534 - layer at (0,0) size 785x1538 - RenderBlock {HTML} at (0,0) size 785x1538 - RenderBody {BODY} at (8,8) size 769x1498 - RenderBlock (anonymous) at (0,0) size 769x259 - RenderText {#text} at (0,0) size 751x185 - text run at (0,0) width 679: "This is test page that we navigate to as part of testing" - text run at (0,37) width 335: "various navigation styles. " - text run at (334,37) width 417: "It includes a form so that we can" - text run at (0,74) width 719: "test saving and restoring of form data, and it needs to be" - text run at (0,111) width 747: "long enough that we can test saving and restoring of scroll" - text run at (0,148) width 112: "position." - RenderBR {BR} at (111,148) size 1x37 - RenderBR {BR} at (0,185) size 0x37 - RenderBR {BR} at (0,222) size 0x37 - RenderBlock {FORM} at (0,293) size 769x412 - RenderButton {INPUT} at (0,0) size 111x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 95x13 - RenderText at (0,0) size 95x13 - text run at (0,0) width 95: "Submit with POST" - RenderBR {BR} at (110,-16) size 1x37 - RenderButton {INPUT} at (0,18) size 228x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 212x13 - RenderText at (0,0) size 212x13 - text run at (0,0) width 212: "Submit with POST followed by a redirect" - RenderBR {BR} at (227,2) size 1x37 - RenderText {#text} at (0,36) size 377x37 - text run at (0,36) width 377: "Here are some form elements" - RenderTextControl {INPUT} at (376,51) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (523,36) size 1x37 - RenderText {#text} at (0,73) size 335x37 - text run at (0,73) width 335: "that we can use for testing" - RenderTextControl {INPUT} at (335,88) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBR {BR} at (481,73) size 1x37 - RenderBlock {INPUT} at (2,129) size 12x12 - RenderText {#text} at (16,110) size 74x37 - text run at (16,110) width 74: " Male" - RenderBR {BR} at (89,110) size 1x37 - RenderBlock {INPUT} at (2,166) size 12x12 - RenderText {#text} at (16,147) size 103x37 - text run at (16,147) width 103: " Female" - RenderBR {BR} at (118,147) size 1x37 - RenderBlock {INPUT} at (2,203) size 12x12 - RenderText {#text} at (16,184) size 130x37 - text run at (16,184) width 130: " option #1" - RenderBR {BR} at (145,184) size 1x37 - RenderBlock {INPUT} at (2,240) size 12x12 - RenderText {#text} at (16,221) size 130x37 - text run at (16,221) width 130: " option #2" - RenderBR {BR} at (145,221) size 1x37 - RenderMenuList {SELECT} at (0,258) size 252x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 252x18 - RenderText at (8,2) size 61x13 - text run at (8,2) width 61: "Initial Value" - RenderBR {BR} at (252,242) size 0x37 - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,771) size 769x37 - RenderText {#text} at (0,0) size 63x37 - text run at (0,0) width 63: "Now" - RenderBlock {P} at (0,840) size 769x37 - RenderText {#text} at (0,0) size 68x37 - text run at (0,0) width 68: "some" - RenderBlock {P} at (0,909) size 769x37 - RenderText {#text} at (0,0) size 61x37 - text run at (0,0) width 61: "filler" - RenderBlock {P} at (0,978) size 769x37 - RenderText {#text} at (0,0) size 29x37 - text run at (0,0) width 29: "so" - RenderBlock {P} at (0,1047) size 769x37 - RenderText {#text} at (0,0) size 40x37 - text run at (0,0) width 40: "the" - RenderBlock {P} at (0,1116) size 769x37 - RenderText {#text} at (0,0) size 47x37 - text run at (0,0) width 47: "doc" - RenderBlock {P} at (0,1185) size 769x37 - RenderText {#text} at (0,0) size 22x37 - text run at (0,0) width 22: "is" - RenderBlock {P} at (0,1254) size 769x37 - RenderText {#text} at (0,0) size 57x37 - text run at (0,0) width 57: "long" - RenderBlock {P} at (0,1323) size 769x37 - RenderText {#text} at (0,0) size 95x37 - text run at (0,0) width 95: "enough" - RenderBlock {P} at (0,1392) size 769x37 - RenderText {#text} at (0,0) size 112x37 - text run at (0,0) width 112: "to scroll." - RenderBlock {P} at (0,1461) size 769x37 - RenderInline {A} at (0,0) size 532x37 - RenderText {#text} at (0,0) size 532x37 - text run at (0,0) width 532: "This is an anchor point named \"anchor1\"." - layer at (8,283) size 769x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,275) size 769x2 [color=#808080] [border: (1px inset #808080)] - layer at (388,355) size 141x13 scrollWidth 145 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 145x13 - text run at (0,0) width 145: "Initial text before user input" - layer at (346,392) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - layer at (8,577) size 231x136 clip at (9,578) size 229x134 - RenderTextControl {TEXTAREA} at (0,276) size 231x136 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - RenderBlock {DIV} at (3,3) size 225x26 - RenderText {#text} at (0,0) size 178x13 - text run at (0,0) width 178: "More initial text before user input." - text run at (177,0) width 1: " " - RenderBR {BR} at (0,13) size 0x13 - layer at (8,745) size 769x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,737) size 769x2 [color=#808080] [border: (1px inset #808080)] - RenderFrame {FRAME} at (0,540) size 800x60 - layer at (0,0) size 785x90 - RenderView at (0,0) size 785x60 - layer at (0,0) size 785x90 - RenderBlock {HTML} at (0,0) size 785x90 - RenderBody {BODY} at (8,8) size 769x74 - RenderText {#text} at (0,0) size 724x74 - text run at (0,0) width 724: "This is just a minimal page that we navigate to as part of" - text run at (0,37) width 272: "testing back/forward." - -============== Back Forward List ============== - http://127.0.0.1:8000/navigation/javascriptlink-frames.html - http://127.0.0.1:8000/navigation/resources/frameset.pl?frameURL=javascriptlink.html - http://127.0.0.1:8000/navigation/resources/otherpage.html (in frame "footer") - http://127.0.0.1:8000/navigation/resources/javascriptlink.html (in frame "main") -curr-> http://127.0.0.1:8000/navigation/resources/frameset.pl?frameURL=javascriptlink.html - http://127.0.0.1:8000/navigation/resources/otherpage.html (in frame "footer") - http://127.0.0.1:8000/navigation/resources/success200.html (in frame "main") -=============================================== diff --git a/LayoutTests/platform/mac-ventura/http/wpt/mediarecorder/mimeType-expected.txt b/LayoutTests/platform/mac-ventura/http/wpt/mediarecorder/mimeType-expected.txt deleted file mode 100644 index 33ba63122a90d..0000000000000 --- a/LayoutTests/platform/mac-ventura/http/wpt/mediarecorder/mimeType-expected.txt +++ /dev/null @@ -1,21 +0,0 @@ - -PASS MediaRecorder.isTypeSupported - 'auDio/mp4' -PASS MediaRecorder.isTypeSupported - 'video/mp4' -PASS MediaRecorder.isTypeSupported - 'audio/MP4;codecs=" avc1.4d002a ,mp4a.40.1"' -PASS MediaRecorder.isTypeSupported - 'video/mp4;codecs="AVC1.4d002a, mp4a.40.1"' -PASS MediaRecorder.isTypeSupported - 'video/mp4;codecs="mP4a.40.1"' -FAIL MediaRecorder.isTypeSupported - 'audio/mp4;codecs="avc1.4d002a, opus"' assert_equals: expected true but got false -FAIL MediaRecorder.isTypeSupported - 'audio/mp4;codecs="opus"' assert_equals: expected true but got false -PASS MediaRecorder.isTypeSupported - 'audio/webm' -PASS MediaRecorder.isTypeSupported - 'audio/webm; codecs="opus"' -PASS MediaRecorder.isTypeSupported - 'audio/webm; codecs="vorbis"' -PASS MediaRecorder.isTypeSupported - 'video/webm' -PASS MediaRecorder.isTypeSupported - 'video/webm; codecs="vp8"' -PASS MediaRecorder.isTypeSupported - 'video/webm; codecs="vp8,opus"' -PASS MediaRecorder.isTypeSupported - 'video/webm; codecs="vp8,vorbis"' -PASS MediaRecorder.isTypeSupported - 'video/webm; codecs="vp09,opus"' -PASS MediaRecorder.isTypeSupported - 'video/webm; codecs="vp09,vorbis"' -PASS MediaRecorder mimeType MP4 -PASS MediaRecorder mimeType WebM -FAIL MediaRecorder mimeType with Opus in MP4 promise_test: Unhandled rejection with value: object "NotSupportedError: mimeType is not supported" - diff --git a/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/html/rendering/widgets/field-sizing-input-text-expected.txt b/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/html/rendering/widgets/field-sizing-input-text-expected.txt deleted file mode 100644 index c3bff2c9fcc84..0000000000000 --- a/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/html/rendering/widgets/field-sizing-input-text-expected.txt +++ /dev/null @@ -1,57 +0,0 @@ - - -PASS text: Empty value -PASS text: Empty value with a size atttribute -PASS text: Auto width and auto height with a long text -PASS text: Explicit width and heigth -PASS text: Explicit width and auto height -PASS text: Explicit height and auto width -PASS text: Text caret is taller than the placeholder -FAIL text: Text caret is shorter than the placeholder assert_less_than: expected a number less than 29 but got 29 -FAIL text: Update field-sizing property dynamically assert_less_than: expected a number less than 147 but got 147 -PASS search: Empty value -PASS search: Empty value with a size atttribute -PASS search: Auto width and auto height with a long text -PASS search: Explicit width and heigth -PASS search: Explicit width and auto height -PASS search: Explicit height and auto width -PASS search: Text caret is taller than the placeholder -FAIL search: Text caret is shorter than the placeholder assert_less_than: expected a number less than 19 but got 19 -FAIL search: Update field-sizing property dynamically assert_less_than: expected a number less than 147 but got 147 -PASS tel: Empty value -PASS tel: Empty value with a size atttribute -PASS tel: Auto width and auto height with a long text -PASS tel: Explicit width and heigth -PASS tel: Explicit width and auto height -PASS tel: Explicit height and auto width -PASS tel: Text caret is taller than the placeholder -FAIL tel: Text caret is shorter than the placeholder assert_less_than: expected a number less than 29 but got 29 -FAIL tel: Update field-sizing property dynamically assert_less_than: expected a number less than 147 but got 147 -PASS url: Empty value -PASS url: Empty value with a size atttribute -PASS url: Auto width and auto height with a long text -PASS url: Explicit width and heigth -PASS url: Explicit width and auto height -PASS url: Explicit height and auto width -PASS url: Text caret is taller than the placeholder -FAIL url: Text caret is shorter than the placeholder assert_less_than: expected a number less than 29 but got 29 -FAIL url: Update field-sizing property dynamically assert_less_than: expected a number less than 147 but got 147 -PASS email: Empty value -PASS email: Empty value with a size atttribute -PASS email: Auto width and auto height with a long text -PASS email: Explicit width and heigth -PASS email: Explicit width and auto height -PASS email: Explicit height and auto width -PASS email: Text caret is taller than the placeholder -FAIL email: Text caret is shorter than the placeholder assert_less_than: expected a number less than 29 but got 29 -FAIL email: Update field-sizing property dynamically assert_less_than: expected a number less than 147 but got 147 -PASS password: Empty value -PASS password: Empty value with a size atttribute -PASS password: Auto width and auto height with a long text -PASS password: Explicit width and heigth -PASS password: Explicit width and auto height -PASS password: Explicit height and auto width -PASS password: Text caret is taller than the placeholder -FAIL password: Text caret is shorter than the placeholder assert_less_than: expected a number less than 29 but got 29 -FAIL password: Update field-sizing property dynamically assert_less_than: expected a number less than 147 but got 147 - diff --git a/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt b/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt deleted file mode 100644 index 54a75b8ee799d..0000000000000 --- a/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt +++ /dev/null @@ -1,62 +0,0 @@ - - -PASS utility code -PASS application/octet-stream not supported -PASS fictional formats and codecs not supported -PASS audio/mp4 (optional) -PASS audio/mp4; codecs="mp4a.40.2" (optional) -PASS audio/mp4 with bogus codec -PASS audio/mp4 with and without codecs -FAIL audio/ogg (optional) assert_equals: audio/ogg expected "maybe" but got "" -FAIL audio/ogg; codecs="opus" (optional) assert_equals: audio/ogg; codecs="opus" expected "probably" but got "" -FAIL audio/ogg; codecs="vorbis" (optional) assert_equals: audio/ogg; codecs="vorbis" expected "probably" but got "" -PASS audio/ogg with bogus codec -PASS audio/ogg with and without codecs -PASS audio/wav (optional) -FAIL audio/wav; codecs="1" (optional) assert_equals: audio/wav; codecs="1" expected "probably" but got "" -PASS audio/wav with bogus codec -FAIL audio/wav with and without codecs assert_equals: expected false but got true -PASS audio/webm (optional) -PASS audio/webm; codecs="opus" (optional) -PASS audio/webm; codecs="vorbis" (optional) -PASS audio/webm with bogus codec -PASS audio/webm with and without codecs -PASS video/3gpp (optional) -PASS video/3gpp; codecs="samr" (optional) -PASS video/3gpp; codecs="mp4v.20.8" (optional) -PASS video/3gpp codecs subset -PASS video/3gpp codecs order -PASS video/3gpp with bogus codec -PASS video/3gpp with and without codecs -PASS video/mp4 (optional) -PASS video/mp4; codecs="mp4a.40.2" (optional) -PASS video/mp4; codecs="avc1.42E01E" (optional) -PASS video/mp4; codecs="avc1.4D401E" (optional) -PASS video/mp4; codecs="avc1.58A01E" (optional) -PASS video/mp4; codecs="avc1.64001E" (optional) -PASS video/mp4; codecs="mp4v.20.8" (optional) -PASS video/mp4; codecs="mp4v.20.240" (optional) -PASS video/mp4 codecs subset -PASS video/mp4 codecs order -PASS video/mp4 with bogus codec -PASS video/mp4 with and without codecs -FAIL video/ogg (optional) assert_equals: video/ogg expected "maybe" but got "" -FAIL video/ogg; codecs="opus" (optional) assert_equals: video/ogg; codecs="opus" expected "probably" but got "" -FAIL video/ogg; codecs="vorbis" (optional) assert_equals: video/ogg; codecs="vorbis" expected "probably" but got "" -FAIL video/ogg; codecs="theora" (optional) assert_equals: video/ogg; codecs="theora" expected "probably" but got "" -PASS video/ogg codecs subset -PASS video/ogg codecs order -PASS video/ogg with bogus codec -PASS video/ogg with and without codecs -PASS video/webm (optional) -PASS video/webm; codecs="opus" (optional) -PASS video/webm; codecs="vorbis" (optional) -PASS video/webm; codecs="vp8" (optional) -PASS video/webm; codecs="vp8.0" (optional) -PASS video/webm; codecs="vp9" (optional) -PASS video/webm; codecs="vp9.0" (optional) -PASS video/webm codecs subset -PASS video/webm codecs order -PASS video/webm with bogus codec -PASS video/webm with and without codecs - diff --git a/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/url/toascii.window-expected.txt b/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/url/toascii.window-expected.txt deleted file mode 100644 index ac11fe6dbf225..0000000000000 --- a/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/url/toascii.window-expected.txt +++ /dev/null @@ -1,786 +0,0 @@ - -PASS Loading data… -PASS aa-- (using URL) -PASS aa-- (using URL.host) -PASS aa-- (using URL.hostname) -PASS aa-- (using ) -PASS aa-- (using .host) -PASS aa-- (using .hostname) -PASS aa-- (using ) -PASS aa-- (using .host) -PASS aa-- (using .hostname) -PASS a†-- (using URL) -PASS a†-- (using URL.host) -PASS a†-- (using URL.hostname) -PASS a†-- (using ) -PASS a†-- (using .host) -PASS a†-- (using .hostname) -PASS a†-- (using ) -PASS a†-- (using .host) -PASS a†-- (using .hostname) -PASS ab--c (using URL) -PASS ab--c (using URL.host) -PASS ab--c (using URL.hostname) -PASS ab--c (using ) -PASS ab--c (using .host) -PASS ab--c (using .hostname) -PASS ab--c (using ) -PASS ab--c (using .host) -PASS ab--c (using .hostname) -PASS -x (using URL) -PASS -x (using URL.host) -PASS -x (using URL.hostname) -PASS -x (using ) -PASS -x (using .host) -PASS -x (using .hostname) -PASS -x (using ) -PASS -x (using .host) -PASS -x (using .hostname) -PASS -† (using URL) -PASS -† (using URL.host) -PASS -† (using URL.hostname) -PASS -† (using ) -PASS -† (using .host) -PASS -† (using .hostname) -PASS -† (using ) -PASS -† (using .host) -PASS -† (using .hostname) -PASS -x.xn--zca (using URL) -PASS -x.xn--zca (using URL.host) -PASS -x.xn--zca (using URL.hostname) -PASS -x.xn--zca (using ) -PASS -x.xn--zca (using .host) -PASS -x.xn--zca (using .hostname) -PASS -x.xn--zca (using ) -PASS -x.xn--zca (using .host) -PASS -x.xn--zca (using .hostname) -PASS -x.ß (using URL) -PASS -x.ß (using URL.host) -PASS -x.ß (using URL.hostname) -PASS -x.ß (using ) -PASS -x.ß (using .host) -PASS -x.ß (using .hostname) -PASS -x.ß (using ) -PASS -x.ß (using .host) -PASS -x.ß (using .hostname) -PASS x-.xn--zca (using URL) -PASS x-.xn--zca (using URL.host) -PASS x-.xn--zca (using URL.hostname) -PASS x-.xn--zca (using ) -PASS x-.xn--zca (using .host) -PASS x-.xn--zca (using .hostname) -PASS x-.xn--zca (using ) -PASS x-.xn--zca (using .host) -PASS x-.xn--zca (using .hostname) -PASS x-.ß (using URL) -PASS x-.ß (using URL.host) -PASS x-.ß (using URL.hostname) -PASS x-.ß (using ) -PASS x-.ß (using .host) -PASS x-.ß (using .hostname) -PASS x-.ß (using ) -PASS x-.ß (using .host) -PASS x-.ß (using .hostname) -PASS x..xn--zca (using URL) -PASS x..xn--zca (using URL.host) -PASS x..xn--zca (using URL.hostname) -PASS x..xn--zca (using ) -PASS x..xn--zca (using .host) -PASS x..xn--zca (using .hostname) -PASS x..xn--zca (using ) -PASS x..xn--zca (using .host) -PASS x..xn--zca (using .hostname) -PASS x..ß (using URL) -PASS x..ß (using URL.host) -PASS x..ß (using URL.hostname) -PASS x..ß (using ) -PASS x..ß (using .host) -PASS x..ß (using .hostname) -PASS x..ß (using ) -PASS x..ß (using .host) -PASS x..ß (using .hostname) -PASS xn--a (using URL) -PASS xn--a (using URL.host) -PASS xn--a (using URL.hostname) -PASS xn--a (using ) -PASS xn--a (using .host) -PASS xn--a (using .hostname) -PASS xn--a (using ) -PASS xn--a (using .host) -PASS xn--a (using .hostname) -PASS xn--a.xn--zca (using URL) -PASS xn--a.xn--zca (using URL.host) -PASS xn--a.xn--zca (using URL.hostname) -PASS xn--a.xn--zca (using ) -PASS xn--a.xn--zca (using .host) -PASS xn--a.xn--zca (using .hostname) -PASS xn--a.xn--zca (using ) -PASS xn--a.xn--zca (using .host) -PASS xn--a.xn--zca (using .hostname) -PASS xn--a.ß (using URL) -PASS xn--a.ß (using URL.host) -PASS xn--a.ß (using URL.hostname) -PASS xn--a.ß (using ) -PASS xn--a.ß (using .host) -PASS xn--a.ß (using .hostname) -PASS xn--a.ß (using ) -PASS xn--a.ß (using .host) -PASS xn--a.ß (using .hostname) -PASS xn--ls8h= (using URL) -PASS xn--ls8h= (using URL.host) -PASS xn--ls8h= (using URL.hostname) -PASS xn--ls8h= (using ) -PASS xn--ls8h= (using .host) -PASS xn--ls8h= (using .hostname) -PASS xn--ls8h= (using ) -PASS xn--ls8h= (using .host) -PASS xn--ls8h= (using .hostname) -PASS xn--tešla (using URL) -PASS xn--tešla (using URL.host) -PASS xn--tešla (using URL.hostname) -PASS xn--tešla (using ) -PASS xn--tešla (using .host) -PASS xn--tešla (using .hostname) -PASS xn--tešla (using ) -PASS xn--tešla (using .host) -PASS xn--tešla (using .hostname) -PASS xn--zca.xn--zca (using URL) -PASS xn--zca.xn--zca (using URL.host) -PASS xn--zca.xn--zca (using URL.hostname) -PASS xn--zca.xn--zca (using ) -PASS xn--zca.xn--zca (using .host) -PASS xn--zca.xn--zca (using .hostname) -PASS xn--zca.xn--zca (using ) -PASS xn--zca.xn--zca (using .host) -PASS xn--zca.xn--zca (using .hostname) -PASS xn--zca.ß (using URL) -PASS xn--zca.ß (using URL.host) -PASS xn--zca.ß (using URL.hostname) -PASS xn--zca.ß (using ) -PASS xn--zca.ß (using .host) -PASS xn--zca.ß (using .hostname) -PASS xn--zca.ß (using ) -PASS xn--zca.ß (using .host) -PASS xn--zca.ß (using .hostname) -PASS ab--c.xn--zca (using URL) -PASS ab--c.xn--zca (using URL.host) -PASS ab--c.xn--zca (using URL.hostname) -PASS ab--c.xn--zca (using ) -PASS ab--c.xn--zca (using .host) -PASS ab--c.xn--zca (using .hostname) -PASS ab--c.xn--zca (using ) -PASS ab--c.xn--zca (using .host) -PASS ab--c.xn--zca (using .hostname) -PASS ab--c.ß (using URL) -PASS ab--c.ß (using URL.host) -PASS ab--c.ß (using URL.hostname) -PASS ab--c.ß (using ) -PASS ab--c.ß (using .host) -PASS ab--c.ß (using .hostname) -PASS ab--c.ß (using ) -PASS ab--c.ß (using .host) -PASS ab--c.ß (using .hostname) -PASS ‍.example (using URL) -PASS ‍.example (using URL.host) -PASS ‍.example (using URL.hostname) -PASS ‍.example (using ) -PASS ‍.example (using .host) -PASS ‍.example (using .hostname) -PASS ‍.example (using ) -PASS ‍.example (using .host) -PASS ‍.example (using .hostname) -PASS xn--1ug.example (using URL) -PASS xn--1ug.example (using URL.host) -PASS xn--1ug.example (using URL.hostname) -PASS xn--1ug.example (using ) -PASS xn--1ug.example (using .host) -PASS xn--1ug.example (using .hostname) -PASS xn--1ug.example (using ) -PASS xn--1ug.example (using .host) -PASS xn--1ug.example (using .hostname) -PASS يa (using URL) -PASS يa (using URL.host) -PASS يa (using URL.hostname) -PASS يa (using ) -PASS يa (using .host) -PASS يa (using .hostname) -PASS يa (using ) -PASS يa (using .host) -PASS يa (using .hostname) -PASS xn--a-yoc (using URL) -PASS xn--a-yoc (using URL.host) -PASS xn--a-yoc (using URL.hostname) -PASS xn--a-yoc (using ) -PASS xn--a-yoc (using .host) -PASS xn--a-yoc (using .hostname) -PASS xn--a-yoc (using ) -PASS xn--a-yoc (using .host) -PASS xn--a-yoc (using .hostname) -PASS ශ්‍රී (using URL) -PASS ශ්‍රී (using URL.host) -PASS ශ්‍රී (using URL.hostname) -PASS ශ්‍රී (using ) -PASS ශ්‍රී (using .host) -PASS ශ්‍රී (using .hostname) -PASS ශ්‍රී (using ) -PASS ශ්‍රී (using .host) -PASS ශ්‍රී (using .hostname) -PASS نامه‌ای (using URL) -PASS نامه‌ای (using URL.host) -PASS نامه‌ای (using URL.hostname) -PASS نامه‌ای (using ) -PASS نامه‌ای (using .host) -PASS نامه‌ای (using .hostname) -PASS نامه‌ای (using ) -PASS نامه‌ای (using .host) -PASS نامه‌ای (using .hostname) -PASS �.com (using URL) -PASS �.com (using URL.host) -PASS �.com (using URL.hostname) -PASS �.com (using ) -PASS �.com (using .host) -PASS �.com (using .hostname) -PASS �.com (using ) -PASS �.com (using .host) -PASS �.com (using .hostname) -PASS xn--zn7c.com (using URL) -PASS xn--zn7c.com (using URL.host) -PASS xn--zn7c.com (using URL.hostname) -PASS xn--zn7c.com (using ) -PASS xn--zn7c.com (using .host) -PASS xn--zn7c.com (using .hostname) -PASS xn--zn7c.com (using ) -PASS xn--zn7c.com (using .host) -PASS xn--zn7c.com (using .hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using URL) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using URL.host) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using URL.hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using ) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using .host) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using .hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using ) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using .host) -PASS x01234567890123456789012345678901234567890123456789012345678901x (using .hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using URL) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using URL.host) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using URL.hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using ) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using .host) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using .hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using ) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using .host) -PASS x01234567890123456789012345678901234567890123456789012345678901† (using .hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using URL) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using URL.host) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using URL.hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using ) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using .host) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using .hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using ) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using .host) -PASS x01234567890123456789012345678901234567890123456789012345678901x.xn--zca (using .hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using URL) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using URL.host) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using URL.hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using ) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using .host) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using .hostname) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using ) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using .host) -PASS x01234567890123456789012345678901234567890123456789012345678901x.ß (using .hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using URL) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using URL.host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using URL.hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using ) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using .host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using .hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using ) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using .host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using .hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using URL) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using URL.host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using URL.hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using ) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using .host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using .hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using ) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using .host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--zca (using .hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using URL) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using URL.host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using URL.hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using ) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using .host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using .hostname) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using ) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using .host) -PASS 01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.ß (using .hostname) -PASS a­b (using URL) -PASS a­b (using URL.host) -PASS a­b (using URL.hostname) -PASS a­b (using ) -PASS a­b (using .host) -PASS a­b (using .hostname) -PASS a­b (using ) -PASS a­b (using .host) -PASS a­b (using .hostname) -PASS ≠ (using URL) -PASS ≠ (using URL.host) -PASS ≠ (using URL.hostname) -PASS ≠ (using ) -PASS ≠ (using .host) -PASS ≠ (using .hostname) -PASS ≠ (using ) -PASS ≠ (using .host) -PASS ≠ (using .hostname) -PASS ≮ (using URL) -PASS ≮ (using URL.host) -PASS ≮ (using URL.hostname) -PASS ≮ (using ) -PASS ≮ (using .host) -PASS ≮ (using .hostname) -PASS ≮ (using ) -PASS ≮ (using .host) -PASS ≮ (using .hostname) -PASS ≯ (using URL) -PASS ≯ (using URL.host) -PASS ≯ (using URL.hostname) -PASS ≯ (using ) -PASS ≯ (using .host) -PASS ≯ (using .hostname) -PASS ≯ (using ) -PASS ≯ (using .host) -PASS ≯ (using .hostname) -PASS ≠ (using URL) -PASS ≠ (using URL.host) -PASS ≠ (using URL.hostname) -PASS ≠ (using ) -PASS ≠ (using .host) -PASS ≠ (using .hostname) -PASS ≠ (using ) -PASS ≠ (using .host) -PASS ≠ (using .hostname) -PASS ≮ (using URL) -PASS ≮ (using URL.host) -PASS ≮ (using URL.hostname) -PASS ≮ (using ) -PASS ≮ (using .host) -PASS ≮ (using .hostname) -PASS ≮ (using ) -PASS ≮ (using .host) -PASS ≮ (using .hostname) -PASS ≯ (using URL) -PASS ≯ (using URL.host) -PASS ≯ (using URL.hostname) -PASS ≯ (using ) -PASS ≯ (using .host) -PASS ≯ (using .hostname) -PASS ≯ (using ) -PASS ≯ (using .host) -PASS ≯ (using .hostname) -PASS =­̸ (using URL) -PASS =­̸ (using URL.host) -PASS =­̸ (using URL.hostname) -PASS =­̸ (using ) -PASS =­̸ (using .host) -PASS =­̸ (using .hostname) -PASS =­̸ (using ) -PASS =­̸ (using .host) -PASS =­̸ (using .hostname) -PASS <­̸ (using URL) -PASS <­̸ (using URL.host) -PASS <­̸ (using URL.hostname) -PASS <­̸ (using ) -PASS <­̸ (using .host) -PASS <­̸ (using .hostname) -PASS <­̸ (using ) -PASS <­̸ (using .host) -PASS <­̸ (using .hostname) -PASS >­̸ (using URL) -PASS >­̸ (using URL.host) -PASS >­̸ (using URL.hostname) -PASS >­̸ (using ) -PASS >­̸ (using .host) -PASS >­̸ (using .hostname) -PASS >­̸ (using ) -PASS >­̸ (using .host) -PASS >­̸ (using .hostname) -PASS faß.de (using URL) -PASS faß.de (using URL.host) -PASS faß.de (using URL.hostname) -PASS faß.de (using ) -PASS faß.de (using .host) -PASS faß.de (using .hostname) -PASS faß.de (using ) -PASS faß.de (using .host) -PASS faß.de (using .hostname) -PASS βόλος.com (using URL) -PASS βόλος.com (using URL.host) -PASS βόλος.com (using URL.hostname) -PASS βόλος.com (using ) -PASS βόλος.com (using .host) -PASS βόλος.com (using .hostname) -PASS βόλος.com (using ) -PASS βόλος.com (using .host) -PASS βόλος.com (using .hostname) -PASS ශ්‍රී.com (using URL) -PASS ශ්‍රී.com (using URL.host) -PASS ශ්‍රී.com (using URL.hostname) -PASS ශ්‍රී.com (using ) -PASS ශ්‍රී.com (using .host) -PASS ශ්‍රී.com (using .hostname) -PASS ශ්‍රී.com (using ) -PASS ශ්‍රී.com (using .host) -PASS ශ්‍රී.com (using .hostname) -PASS نامه‌ای.com (using URL) -PASS نامه‌ای.com (using URL.host) -PASS نامه‌ای.com (using URL.hostname) -PASS نامه‌ای.com (using ) -PASS نامه‌ای.com (using .host) -PASS نامه‌ای.com (using .hostname) -PASS نامه‌ای.com (using ) -PASS نامه‌ای.com (using .host) -PASS نامه‌ای.com (using .hostname) -PASS www.looĸout.net (using URL) -PASS www.looĸout.net (using URL.host) -PASS www.looĸout.net (using URL.hostname) -PASS www.looĸout.net (using ) -PASS www.looĸout.net (using .host) -PASS www.looĸout.net (using .hostname) -PASS www.looĸout.net (using ) -PASS www.looĸout.net (using .host) -PASS www.looĸout.net (using .hostname) -PASS ᗯᗯᗯ.lookout.net (using URL) -PASS ᗯᗯᗯ.lookout.net (using URL.host) -PASS ᗯᗯᗯ.lookout.net (using URL.hostname) -PASS ᗯᗯᗯ.lookout.net (using ) -PASS ᗯᗯᗯ.lookout.net (using .host) -PASS ᗯᗯᗯ.lookout.net (using .hostname) -PASS ᗯᗯᗯ.lookout.net (using ) -PASS ᗯᗯᗯ.lookout.net (using .host) -PASS ᗯᗯᗯ.lookout.net (using .hostname) -PASS www.lookout.сом (using URL) -PASS www.lookout.сом (using URL.host) -PASS www.lookout.сом (using URL.hostname) -PASS www.lookout.сом (using ) -PASS www.lookout.сом (using .host) -PASS www.lookout.сом (using .hostname) -PASS www.lookout.сом (using ) -PASS www.lookout.сом (using .host) -PASS www.lookout.сом (using .hostname) -PASS www‥lookout.net (using URL) -PASS www‥lookout.net (using URL.host) -PASS www‥lookout.net (using URL.hostname) -PASS www‥lookout.net (using ) -PASS www‥lookout.net (using .host) -PASS www‥lookout.net (using .hostname) -PASS www‥lookout.net (using ) -PASS www‥lookout.net (using .host) -PASS www‥lookout.net (using .hostname) -PASS www.lookout‧net (using URL) -PASS www.lookout‧net (using URL.host) -PASS www.lookout‧net (using URL.hostname) -PASS www.lookout‧net (using ) -PASS www.lookout‧net (using .host) -PASS www.lookout‧net (using .hostname) -PASS www.lookout‧net (using ) -PASS www.lookout‧net (using .host) -PASS www.lookout‧net (using .hostname) -PASS www.lookout.net⩴80 (using URL) -PASS www.lookout.net⩴80 (using URL.host) -PASS www.lookout.net⩴80 (using URL.hostname) -PASS www.lookout.net⩴80 (using ) -PASS www.lookout.net⩴80 (using .host) -PASS www.lookout.net⩴80 (using .hostname) -PASS www.lookout.net⩴80 (using ) -PASS www.lookout.net⩴80 (using .host) -PASS www.lookout.net⩴80 (using .hostname) -PASS www .lookout.net (using URL) -PASS www .lookout.net (using URL.host) -PASS www .lookout.net (using URL.hostname) -PASS www .lookout.net (using ) -PASS www .lookout.net (using .host) -PASS www .lookout.net (using .hostname) -PASS www .lookout.net (using ) -PASS www .lookout.net (using .host) -PASS www .lookout.net (using .hostname) -PASS  lookout.net (using URL) -PASS  lookout.net (using URL.host) -PASS  lookout.net (using URL.hostname) -PASS  lookout.net (using ) -PASS  lookout.net (using .host) -PASS  lookout.net (using .hostname) -PASS  lookout.net (using ) -PASS  lookout.net (using .host) -PASS  lookout.net (using .hostname) -PASS lookout.net (using URL) -PASS lookout.net (using URL.host) -PASS lookout.net (using URL.hostname) -PASS lookout.net (using ) -PASS lookout.net (using .host) -PASS lookout.net (using .hostname) -PASS lookout.net (using ) -PASS lookout.net (using .host) -PASS lookout.net (using .hostname) -PASS look۝out.net (using URL) -PASS look۝out.net (using URL.host) -PASS look۝out.net (using URL.hostname) -PASS look۝out.net (using ) -PASS look۝out.net (using .host) -PASS look۝out.net (using .hostname) -PASS look۝out.net (using ) -PASS look۝out.net (using .host) -PASS look۝out.net (using .hostname) -PASS look᠎out.net (using URL) -PASS look᠎out.net (using URL.host) -PASS look᠎out.net (using URL.hostname) -PASS look᠎out.net (using ) -PASS look᠎out.net (using .host) -PASS look᠎out.net (using .hostname) -PASS look᠎out.net (using ) -PASS look᠎out.net (using .host) -PASS look᠎out.net (using .hostname) -PASS look⁠out.net (using URL) -PASS look⁠out.net (using URL.host) -PASS look⁠out.net (using URL.hostname) -PASS look⁠out.net (using ) -PASS look⁠out.net (using .host) -PASS look⁠out.net (using .hostname) -PASS look⁠out.net (using ) -PASS look⁠out.net (using .host) -PASS look⁠out.net (using .hostname) -PASS lookout.net (using URL) -PASS lookout.net (using URL.host) -PASS lookout.net (using URL.hostname) -PASS lookout.net (using ) -PASS lookout.net (using .host) -PASS lookout.net (using .hostname) -PASS lookout.net (using ) -PASS lookout.net (using .host) -PASS lookout.net (using .hostname) -PASS look🿾out.net (using URL) -PASS look🿾out.net (using URL.host) -PASS look🿾out.net (using URL.hostname) -PASS look🿾out.net (using ) -PASS look🿾out.net (using .host) -PASS look🿾out.net (using .hostname) -PASS look🿾out.net (using ) -PASS look🿾out.net (using .host) -PASS look🿾out.net (using .hostname) -PASS lookout.net (using URL) -PASS lookout.net (using URL.host) -PASS lookout.net (using URL.hostname) -PASS lookout.net (using ) -PASS lookout.net (using .host) -PASS lookout.net (using .hostname) -PASS lookout.net (using ) -PASS lookout.net (using .host) -PASS lookout.net (using .hostname) -PASS look⿰out.net (using URL) -PASS look⿰out.net (using URL.host) -PASS look⿰out.net (using URL.hostname) -PASS look⿰out.net (using ) -PASS look⿰out.net (using .host) -PASS look⿰out.net (using .hostname) -PASS look⿰out.net (using ) -PASS look⿰out.net (using .host) -PASS look⿰out.net (using .hostname) -PASS looḱout.net (using URL) -PASS looḱout.net (using URL.host) -PASS looḱout.net (using URL.hostname) -PASS looḱout.net (using ) -PASS looḱout.net (using .host) -PASS looḱout.net (using .hostname) -PASS looḱout.net (using ) -PASS looḱout.net (using .host) -PASS looḱout.net (using .hostname) -PASS look‮out.net (using URL) -PASS look‮out.net (using URL.host) -PASS look‮out.net (using URL.hostname) -PASS look‮out.net (using ) -PASS look‮out.net (using .host) -PASS look‮out.net (using .hostname) -PASS look‮out.net (using ) -PASS look‮out.net (using .host) -PASS look‮out.net (using .hostname) -PASS lookout.net (using URL) -PASS lookout.net (using URL.host) -PASS lookout.net (using URL.hostname) -PASS lookout.net (using ) -PASS lookout.net (using .host) -PASS lookout.net (using .hostname) -PASS lookout.net (using ) -PASS lookout.net (using .host) -PASS lookout.net (using .hostname) -PASS look󠀁out.net (using URL) -PASS look󠀁out.net (using URL.host) -PASS look󠀁out.net (using URL.hostname) -PASS look󠀁out.net (using ) -PASS look󠀁out.net (using .host) -PASS look󠀁out.net (using .hostname) -PASS look󠀁out.net (using ) -PASS look󠀁out.net (using .host) -PASS look󠀁out.net (using .hostname) -PASS look󠀠out.net (using URL) -PASS look󠀠out.net (using URL.host) -PASS look󠀠out.net (using URL.hostname) -PASS look󠀠out.net (using ) -PASS look󠀠out.net (using .host) -PASS look󠀠out.net (using .hostname) -PASS look󠀠out.net (using ) -PASS look󠀠out.net (using .host) -PASS look󠀠out.net (using .hostname) -PASS look־out.net (using URL) -PASS look־out.net (using URL.host) -PASS look־out.net (using URL.hostname) -PASS look־out.net (using ) -PASS look־out.net (using .host) -PASS look־out.net (using .hostname) -PASS look־out.net (using ) -PASS look־out.net (using .host) -PASS look־out.net (using .hostname) -PASS Bücher.de (using URL) -PASS Bücher.de (using URL.host) -PASS Bücher.de (using URL.hostname) -PASS Bücher.de (using ) -PASS Bücher.de (using .host) -PASS Bücher.de (using .hostname) -PASS Bücher.de (using ) -PASS Bücher.de (using .host) -PASS Bücher.de (using .hostname) -PASS ♥.net (using URL) -PASS ♥.net (using URL.host) -PASS ♥.net (using URL.hostname) -PASS ♥.net (using ) -PASS ♥.net (using .host) -PASS ♥.net (using .hostname) -PASS ♥.net (using ) -PASS ♥.net (using .host) -PASS ♥.net (using .hostname) -PASS ͸.net (using URL) -PASS ͸.net (using URL.host) -PASS ͸.net (using URL.hostname) -PASS ͸.net (using ) -PASS ͸.net (using .host) -PASS ͸.net (using .hostname) -PASS ͸.net (using ) -PASS ͸.net (using .host) -PASS ͸.net (using .hostname) -PASS Ӏ.com (using URL) -PASS Ӏ.com (using URL.host) -PASS Ӏ.com (using URL.hostname) -PASS Ӏ.com (using ) -PASS Ӏ.com (using .host) -PASS Ӏ.com (using .hostname) -PASS Ӏ.com (using ) -PASS Ӏ.com (using .host) -PASS Ӏ.com (using .hostname) -FAIL 㛼.com (using URL) "https://㛼.com/x" cannot be parsed as a URL. -FAIL 㛼.com (using URL.host) assert_equals: expected "xn--snl.com" but got "x" -FAIL 㛼.com (using URL.hostname) assert_equals: expected "xn--snl.com" but got "x" -FAIL 㛼.com (using ) "https://㛼.com/x" cannot be parsed as a URL. -FAIL 㛼.com (using .host) assert_equals: expected "xn--snl.com" but got "x" -FAIL 㛼.com (using .hostname) assert_equals: expected "xn--snl.com" but got "x" -FAIL 㛼.com (using ) "https://㛼.com/x" cannot be parsed as a URL. -FAIL 㛼.com (using .host) assert_equals: expected "xn--snl.com" but got "x" -FAIL 㛼.com (using .hostname) assert_equals: expected "xn--snl.com" but got "x" -PASS Ↄ.com (using URL) -PASS Ↄ.com (using URL.host) -PASS Ↄ.com (using URL.hostname) -PASS Ↄ.com (using ) -PASS Ↄ.com (using .host) -PASS Ↄ.com (using .hostname) -PASS Ↄ.com (using ) -PASS Ↄ.com (using .host) -PASS Ↄ.com (using .hostname) -PASS look͏out.net (using URL) -PASS look͏out.net (using URL.host) -PASS look͏out.net (using URL.hostname) -PASS look͏out.net (using ) -PASS look͏out.net (using .host) -PASS look͏out.net (using .hostname) -PASS look͏out.net (using ) -PASS look͏out.net (using .host) -PASS look͏out.net (using .hostname) -PASS gOoGle.com (using URL) -PASS gOoGle.com (using URL.host) -PASS gOoGle.com (using URL.hostname) -PASS gOoGle.com (using ) -PASS gOoGle.com (using .host) -PASS gOoGle.com (using .hostname) -PASS gOoGle.com (using ) -PASS gOoGle.com (using .host) -PASS gOoGle.com (using .hostname) -PASS ড়.com (using URL) -PASS ড়.com (using URL.host) -PASS ড়.com (using URL.hostname) -PASS ড়.com (using ) -PASS ড়.com (using .host) -PASS ড়.com (using .hostname) -PASS ড়.com (using ) -PASS ড়.com (using .host) -PASS ড়.com (using .hostname) -FAIL ẞ.com (using URL) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.com (using URL.host) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.com (using URL.hostname) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.com (using ) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.com (using .host) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.com (using .hostname) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.com (using ) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.com (using .host) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.com (using .hostname) assert_equals: expected "xn--zca.com" but got "ss.com" -FAIL ẞ.foo.com (using URL) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -FAIL ẞ.foo.com (using URL.host) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -FAIL ẞ.foo.com (using URL.hostname) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -FAIL ẞ.foo.com (using ) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -FAIL ẞ.foo.com (using .host) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -FAIL ẞ.foo.com (using .hostname) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -FAIL ẞ.foo.com (using ) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -FAIL ẞ.foo.com (using .host) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -FAIL ẞ.foo.com (using .hostname) assert_equals: expected "xn--zca.foo.com" but got "ss.foo.com" -PASS -foo.bar.com (using URL) -PASS -foo.bar.com (using URL.host) -PASS -foo.bar.com (using URL.hostname) -PASS -foo.bar.com (using ) -PASS -foo.bar.com (using .host) -PASS -foo.bar.com (using .hostname) -PASS -foo.bar.com (using ) -PASS -foo.bar.com (using .host) -PASS -foo.bar.com (using .hostname) -PASS foo-.bar.com (using URL) -PASS foo-.bar.com (using URL.host) -PASS foo-.bar.com (using URL.hostname) -PASS foo-.bar.com (using ) -PASS foo-.bar.com (using .host) -PASS foo-.bar.com (using .hostname) -PASS foo-.bar.com (using ) -PASS foo-.bar.com (using .host) -PASS foo-.bar.com (using .hostname) -PASS ab--cd.com (using URL) -PASS ab--cd.com (using URL.host) -PASS ab--cd.com (using URL.hostname) -PASS ab--cd.com (using ) -PASS ab--cd.com (using .host) -PASS ab--cd.com (using .hostname) -PASS ab--cd.com (using ) -PASS ab--cd.com (using .host) -PASS ab--cd.com (using .hostname) -PASS xn--0.com (using URL) -PASS xn--0.com (using URL.host) -PASS xn--0.com (using URL.hostname) -PASS xn--0.com (using ) -PASS xn--0.com (using .host) -PASS xn--0.com (using .hostname) -PASS xn--0.com (using ) -PASS xn--0.com (using .host) -PASS xn--0.com (using .hostname) -PASS foò.bar.com (using URL) -PASS foò.bar.com (using URL.host) -PASS foò.bar.com (using URL.hostname) -PASS foò.bar.com (using ) -PASS foò.bar.com (using .host) -PASS foò.bar.com (using .hostname) -PASS foò.bar.com (using ) -PASS foò.bar.com (using .host) -PASS foò.bar.com (using .hostname) - diff --git a/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/xhr/open-method-case-sensitive-expected.txt b/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/xhr/open-method-case-sensitive-expected.txt deleted file mode 100644 index cd606472f86c0..0000000000000 --- a/LayoutTests/platform/mac-ventura/imported/w3c/web-platform-tests/xhr/open-method-case-sensitive-expected.txt +++ /dev/null @@ -1,11 +0,0 @@ - -PASS XMLHttpRequest: open() - case-sensitive methods test (XUNICORN) -PASS XMLHttpRequest: open() - case-sensitive methods test (xUNIcorn) -PASS XMLHttpRequest: open() - case-sensitive methods test (chiCKEN) -PASS XMLHttpRequest: open() - case-sensitive methods test (PATCH) -PASS XMLHttpRequest: open() - case-sensitive methods test (patCH) -PASS XMLHttpRequest: open() - case-sensitive methods test (copy) -PASS XMLHttpRequest: open() - case-sensitive methods test (COpy) -PASS XMLHttpRequest: open() - case-sensitive methods test (inDEX) -PASS XMLHttpRequest: open() - case-sensitive methods test (movE) - diff --git a/LayoutTests/platform/mac-ventura/media/media-can-play-h265-video-expected.txt b/LayoutTests/platform/mac-ventura/media/media-can-play-h265-video-expected.txt deleted file mode 100644 index 75dc868886c29..0000000000000 --- a/LayoutTests/platform/mac-ventura/media/media-can-play-h265-video-expected.txt +++ /dev/null @@ -1,10 +0,0 @@ - -Test HTMLMediaElement canPlayType() method with multiple video mpeg4 MIME types with H265 codecs. - -These tests may be expected to fail if the WebKit port does not support the format. - -EXPECTED (video.canPlayType('video/mp4') == 'maybe') OK -EXPECTED (video.canPlayType('video/mp4; Codecs="hvc1.2.20000000.l123.b0"') == 'probably') OK -EXPECTED (video.canPlayType(' Video/MP4 ; CODECS="hev1.1.6.L150.B0"') == 'probably'), OBSERVED '' FAIL -END OF TEST - diff --git a/LayoutTests/platform/mac-ventura/media/media-can-play-mpeg4-video-expected.txt b/LayoutTests/platform/mac-ventura/media/media-can-play-mpeg4-video-expected.txt deleted file mode 100644 index 5e6247457f6cd..0000000000000 --- a/LayoutTests/platform/mac-ventura/media/media-can-play-mpeg4-video-expected.txt +++ /dev/null @@ -1,12 +0,0 @@ - -Test HTMLMediaElement canPlayType() method with multiple video mpeg4 MIME types. - -These tests may be expected to fail if the WebKit port does not support the format. - -EXPECTED (video.canPlayType('video/x-m4v') == 'maybe') OK -EXPECTED (video.canPlayType('video/mp4') == 'maybe') OK -EXPECTED (video.canPlayType('video/mp4; Codecs="avc1"') == 'probably') OK -EXPECTED (video.canPlayType('video/mp4; Codecs="avc1.4D400C"') == 'probably') OK -EXPECTED (video.canPlayType(' Video/MP4 ; CODECS="mp4v.20.8, mp4a.40.2"') == 'probably') OK -END OF TEST - diff --git a/LayoutTests/platform/mac-ventura/media/media-can-play-wav-audio-expected.txt b/LayoutTests/platform/mac-ventura/media/media-can-play-wav-audio-expected.txt deleted file mode 100644 index cda3343b6faf3..0000000000000 --- a/LayoutTests/platform/mac-ventura/media/media-can-play-wav-audio-expected.txt +++ /dev/null @@ -1,13 +0,0 @@ - -Test HTMLMediaElement canPlayType() method with multiple .wav MIME types. - -These tests may be expected to fail if the WebKit port does not support the format. - -EXPECTED (audio.canPlayType('audio/wav') == 'maybe') OK -EXPECTED (audio.canPlayType('audio/x-wav') == 'maybe') OK -EXPECTED (audio.canPlayType('audio/vnd.wave') == 'maybe') OK -EXPECTED (audio.canPlayType('audio/wav; codecs=1') == 'probably'), OBSERVED '' FAIL -EXPECTED (audio.canPlayType('audio/x-wav; codecs=1') == 'probably'), OBSERVED '' FAIL -EXPECTED (audio.canPlayType('audio/vnd.wave; codecs=1') == 'probably'), OBSERVED '' FAIL -END OF TEST - diff --git a/LayoutTests/platform/mac-ventura/media/video-source-type-params-expected.txt b/LayoutTests/platform/mac-ventura/media/video-source-type-params-expected.txt deleted file mode 100644 index a2571029e58bb..0000000000000 --- a/LayoutTests/platform/mac-ventura/media/video-source-type-params-expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -EVENT(loadstart) -EXPECTED (stripExtension(relativeURL(video.currentSrc)) == 'content/test') OK -END OF TEST - diff --git a/LayoutTests/platform/mac-ventura/printing/print-with-media-query-destory-expected.txt b/LayoutTests/platform/mac-ventura/printing/print-with-media-query-destory-expected.txt deleted file mode 100644 index 36ef5be8a2517..0000000000000 --- a/LayoutTests/platform/mac-ventura/printing/print-with-media-query-destory-expected.txt +++ /dev/null @@ -1 +0,0 @@ -Pass if no crash or assert diff --git a/LayoutTests/platform/mac-ventura/scrollbars/overflow-scrollbar-combinations-expected.txt b/LayoutTests/platform/mac-ventura/scrollbars/overflow-scrollbar-combinations-expected.txt deleted file mode 100644 index 37100e53c0d49..0000000000000 --- a/LayoutTests/platform/mac-ventura/scrollbars/overflow-scrollbar-combinations-expected.txt +++ /dev/null @@ -1,1208 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 (165,0) size 4x18 - text run at (165,0) width 4: " " - RenderText {#text} at (334,0) size 4x18 - text run at (334,0) width 4: " " - RenderText {#text} at (503,0) size 4x18 - text run at (503,0) width 4: " " - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (165,140) size 4x18 - text run at (165,140) width 4: " " - RenderText {#text} at (334,140) size 4x18 - text run at (334,140) width 4: " " - RenderText {#text} at (503,140) size 4x18 - text run at (503,140) width 4: " " - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (165,280) size 4x18 - text run at (165,280) width 4: " " - RenderText {#text} at (334,280) size 4x18 - text run at (334,280) width 4: " " - RenderText {#text} at (503,280) size 4x18 - text run at (503,280) width 4: " " - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (165,420) size 4x18 - text run at (165,420) width 4: " " - RenderText {#text} at (334,420) size 4x18 - text run at (334,420) width 4: " " - RenderText {#text} at (0,0) size 0x0 -layer at (28,28) size 125x100 clip at (29,29) size 110x85 scrollHeight 2135 - RenderBlock {DIV} at (20,20) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderText {#text} at (11,11) size 89x810 - text run at (11,11) width 79: "Lorem ipsum" - text run at (11,26) width 89: "dolor sit amet," - text run at (11,41) width 78: "consectetuer" - text run at (11,56) width 87: "adipiscing elit." - text run at (11,71) width 75: "Morbi et nisi" - text run at (11,86) width 35: "ut est" - text run at (11,101) width 59: "venenatis" - text run at (11,116) width 47: "viverra." - text run at (11,131) width 79: "Aenean pede" - text run at (11,146) width 72: "orci, blandit" - text run at (11,161) width 84: "quis, faucibus" - text run at (11,176) width 80: "quis, egestas" - text run at (11,191) width 41: "ut, mi." - text run at (11,206) width 77: "Pellentesque" - text run at (11,221) width 73: "enim purus," - text run at (11,236) width 59: "venenatis" - text run at (11,251) width 61: "dignissim," - text run at (11,266) width 69: "tincidunt a," - text run at (11,281) width 72: "ullamcorper" - text run at (11,296) width 66: "eget, nibh." - text run at (11,311) width 88: "Nullam ut sem" - text run at (11,326) width 86: "adipiscing orci" - text run at (11,341) width 50: "vehicula" - text run at (11,356) width 59: "interdum." - text run at (11,371) width 81: "Proin a enim." - text run at (11,386) width 56: "Phasellus" - text run at (11,401) width 69: "sollicitudin," - text run at (11,416) width 75: "magna vitae" - text run at (11,431) width 67: "vestibulum" - text run at (11,446) width 85: "facilisis, tellus" - text run at (11,461) width 71: "nunc iaculis" - text run at (11,476) width 46: "arcu, in" - text run at (11,491) width 81: "molestie sem" - text run at (11,506) width 75: "velit tempus" - text run at (11,521) width 40: "est. In" - text run at (11,536) width 78: "eleifend velit" - text run at (11,551) width 42: "at sem" - text run at (11,566) width 60: "adipiscing" - text run at (11,581) width 84: "sodales. Nunc" - text run at (11,596) width 72: "sapien felis," - text run at (11,611) width 69: "aliquam et," - text run at (11,626) width 50: "volutpat" - text run at (11,641) width 53: "rhoncus," - text run at (11,656) width 83: "condimentum" - text run at (11,671) width 60: "ut, tortor." - text run at (11,686) width 71: "Integer est." - text run at (11,701) width 49: "Quisque" - text run at (11,716) width 47: "viverra." - text run at (11,731) width 78: "Praesent sed" - text run at (11,746) width 31: "arcu." - text run at (11,761) width 74: "Maecenas id" - text run at (11,776) width 68: "lorem a leo" - text run at (11,791) width 45: "lobortis" - text run at (11,806) width 87: "condimentum." - RenderBR {BR} at (97,806) size 1x15 - RenderBR {BR} at (11,821) size 0x15 - RenderText {#text} at (11,836) size 89x735 - text run at (11,836) width 27: "Cras" - text run at (11,851) width 59: "commodo" - text run at (11,866) width 88: "rutrum augue." - text run at (11,881) width 52: "Vivamus" - text run at (11,896) width 88: "iaculis. Nullam" - text run at (11,911) width 86: "est. Maecenas" - text run at (11,926) width 66: "consequat." - text run at (11,941) width 65: "Sed id dui." - text run at (11,956) width 63: "Vivamus a" - text run at (11,971) width 67: "nisl. Donec" - text run at (11,986) width 48: "pretium" - text run at (11,1001) width 79: "sapien. Proin" - text run at (11,1016) width 65: "et ligula et" - text run at (11,1031) width 85: "ligula placerat" - text run at (11,1046) width 54: "pulvinar." - text run at (11,1061) width 78: "Aliquam erat" - text run at (11,1076) width 89: "volutpat. Proin" - text run at (11,1091) width 38: "id est." - text run at (11,1106) width 75: "Suspendisse" - text run at (11,1121) width 89: "cursus, magna" - text run at (11,1136) width 72: "at hendrerit" - text run at (11,1151) width 66: "consequat," - text run at (11,1166) width 64: "mauris est" - text run at (11,1181) width 58: "imperdiet" - text run at (11,1196) width 53: "neque, a" - text run at (11,1211) width 75: "ultrices arcu" - text run at (11,1226) width 55: "urna non" - text run at (11,1241) width 87: "nunc. Quisque" - text run at (11,1256) width 72: "tellus. Nulla" - text run at (11,1271) width 68: "nulla justo," - text run at (11,1286) width 80: "vehicula nec," - text run at (11,1301) width 77: "pellentesque" - text run at (11,1316) width 81: "eu, iaculis et," - text run at (11,1331) width 37: "ligula." - text run at (11,1346) width 53: "Praesent" - text run at (11,1361) width 69: "mattis ante" - text run at (11,1376) width 52: "vel sem." - text run at (11,1391) width 75: "Suspendisse" - text run at (11,1406) width 84: "porta rhoncus" - text run at (11,1421) width 32: "urna." - text run at (11,1436) width 89: "Phasellus felis." - text run at (11,1451) width 53: "Praesent" - text run at (11,1466) width 43: "viverra" - text run at (11,1481) width 52: "convallis" - text run at (11,1496) width 38: "libero." - text run at (11,1511) width 86: "Maecenas non" - text run at (11,1526) width 84: "augue. Donec" - text run at (11,1541) width 56: "hendrerit" - text run at (11,1556) width 89: "lectus id enim." - RenderBR {BR} at (99,1556) size 1x15 - RenderBR {BR} at (11,1571) size 0x15 - RenderText {#text} at (11,1586) size 90x540 - text run at (11,1586) width 67: "Nulla ligula" - text run at (11,1601) width 78: "dui, euismod" - text run at (11,1616) width 66: "et, sodales" - text run at (11,1631) width 29: "quis," - text run at (11,1646) width 64: "sollicitudin" - text run at (11,1661) width 73: "quis, elit. In" - text run at (11,1676) width 82: "adipiscing est" - text run at (11,1691) width 60: "sed enim." - text run at (11,1706) width 51: "Fusce at" - text run at (11,1721) width 73: "massa vitae" - text run at (11,1736) width 87: "metus semper" - text run at (11,1751) width 60: "hendrerit." - text run at (11,1766) width 78: "Integer vitae" - text run at (11,1781) width 67: "urna. Nulla" - text run at (11,1796) width 68: "eget ligula." - text run at (11,1811) width 77: "Etiam libero." - text run at (11,1826) width 84: "Maecenas nisi" - text run at (11,1841) width 87: "nibh, convallis" - text run at (11,1856) width 58: "a, feugiat" - text run at (11,1871) width 87: "vitae, pulvinar" - text run at (11,1886) width 40: "et, mi." - text run at (11,1901) width 87: "Curabitur arcu" - text run at (11,1916) width 34: "pede," - text run at (11,1931) width 90: "adipiscing sed," - text run at (11,1946) width 76: "egestas nec," - text run at (11,1961) width 79: "commodo in," - text run at (11,1976) width 58: "elit. Nulla" - text run at (11,1991) width 77: "facilisi. Proin" - text run at (11,2006) width 87: "varius pede et" - text run at (11,2021) width 61: "dui lacinia" - text run at (11,2036) width 89: "dapibus. Morbi" - text run at (11,2051) width 67: "nec augue." - text run at (11,2066) width 31: "Proin" - text run at (11,2081) width 58: "imperdiet" - text run at (11,2096) width 50: "lacus eu" - text run at (11,2111) width 37: "tellus." -layer at (197,28) size 125x100 clip at (198,29) size 110x98 scrollHeight 2135 - RenderBlock {DIV} at (189,20) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderText {#text} at (11,11) size 89x810 - text run at (11,11) width 79: "Lorem ipsum" - text run at (11,26) width 89: "dolor sit amet," - text run at (11,41) width 78: "consectetuer" - text run at (11,56) width 87: "adipiscing elit." - text run at (11,71) width 75: "Morbi et nisi" - text run at (11,86) width 35: "ut est" - text run at (11,101) width 59: "venenatis" - text run at (11,116) width 47: "viverra." - text run at (11,131) width 79: "Aenean pede" - text run at (11,146) width 72: "orci, blandit" - text run at (11,161) width 84: "quis, faucibus" - text run at (11,176) width 80: "quis, egestas" - text run at (11,191) width 41: "ut, mi." - text run at (11,206) width 77: "Pellentesque" - text run at (11,221) width 73: "enim purus," - text run at (11,236) width 59: "venenatis" - text run at (11,251) width 61: "dignissim," - text run at (11,266) width 69: "tincidunt a," - text run at (11,281) width 72: "ullamcorper" - text run at (11,296) width 66: "eget, nibh." - text run at (11,311) width 88: "Nullam ut sem" - text run at (11,326) width 86: "adipiscing orci" - text run at (11,341) width 50: "vehicula" - text run at (11,356) width 59: "interdum." - text run at (11,371) width 81: "Proin a enim." - text run at (11,386) width 56: "Phasellus" - text run at (11,401) width 69: "sollicitudin," - text run at (11,416) width 75: "magna vitae" - text run at (11,431) width 67: "vestibulum" - text run at (11,446) width 85: "facilisis, tellus" - text run at (11,461) width 71: "nunc iaculis" - text run at (11,476) width 46: "arcu, in" - text run at (11,491) width 81: "molestie sem" - text run at (11,506) width 75: "velit tempus" - text run at (11,521) width 40: "est. In" - text run at (11,536) width 78: "eleifend velit" - text run at (11,551) width 42: "at sem" - text run at (11,566) width 60: "adipiscing" - text run at (11,581) width 84: "sodales. Nunc" - text run at (11,596) width 72: "sapien felis," - text run at (11,611) width 69: "aliquam et," - text run at (11,626) width 50: "volutpat" - text run at (11,641) width 53: "rhoncus," - text run at (11,656) width 83: "condimentum" - text run at (11,671) width 60: "ut, tortor." - text run at (11,686) width 71: "Integer est." - text run at (11,701) width 49: "Quisque" - text run at (11,716) width 47: "viverra." - text run at (11,731) width 78: "Praesent sed" - text run at (11,746) width 31: "arcu." - text run at (11,761) width 74: "Maecenas id" - text run at (11,776) width 68: "lorem a leo" - text run at (11,791) width 45: "lobortis" - text run at (11,806) width 87: "condimentum." - RenderBR {BR} at (97,806) size 1x15 - RenderBR {BR} at (11,821) size 0x15 - RenderText {#text} at (11,836) size 89x735 - text run at (11,836) width 27: "Cras" - text run at (11,851) width 59: "commodo" - text run at (11,866) width 88: "rutrum augue." - text run at (11,881) width 52: "Vivamus" - text run at (11,896) width 88: "iaculis. Nullam" - text run at (11,911) width 86: "est. Maecenas" - text run at (11,926) width 66: "consequat." - text run at (11,941) width 65: "Sed id dui." - text run at (11,956) width 63: "Vivamus a" - text run at (11,971) width 67: "nisl. Donec" - text run at (11,986) width 48: "pretium" - text run at (11,1001) width 79: "sapien. Proin" - text run at (11,1016) width 65: "et ligula et" - text run at (11,1031) width 85: "ligula placerat" - text run at (11,1046) width 54: "pulvinar." - text run at (11,1061) width 78: "Aliquam erat" - text run at (11,1076) width 89: "volutpat. Proin" - text run at (11,1091) width 38: "id est." - text run at (11,1106) width 75: "Suspendisse" - text run at (11,1121) width 89: "cursus, magna" - text run at (11,1136) width 72: "at hendrerit" - text run at (11,1151) width 66: "consequat," - text run at (11,1166) width 64: "mauris est" - text run at (11,1181) width 58: "imperdiet" - text run at (11,1196) width 53: "neque, a" - text run at (11,1211) width 75: "ultrices arcu" - text run at (11,1226) width 55: "urna non" - text run at (11,1241) width 87: "nunc. Quisque" - text run at (11,1256) width 72: "tellus. Nulla" - text run at (11,1271) width 68: "nulla justo," - text run at (11,1286) width 80: "vehicula nec," - text run at (11,1301) width 77: "pellentesque" - text run at (11,1316) width 81: "eu, iaculis et," - text run at (11,1331) width 37: "ligula." - text run at (11,1346) width 53: "Praesent" - text run at (11,1361) width 69: "mattis ante" - text run at (11,1376) width 52: "vel sem." - text run at (11,1391) width 75: "Suspendisse" - text run at (11,1406) width 84: "porta rhoncus" - text run at (11,1421) width 32: "urna." - text run at (11,1436) width 89: "Phasellus felis." - text run at (11,1451) width 53: "Praesent" - text run at (11,1466) width 43: "viverra" - text run at (11,1481) width 52: "convallis" - text run at (11,1496) width 38: "libero." - text run at (11,1511) width 86: "Maecenas non" - text run at (11,1526) width 84: "augue. Donec" - text run at (11,1541) width 56: "hendrerit" - text run at (11,1556) width 89: "lectus id enim." - RenderBR {BR} at (99,1556) size 1x15 - RenderBR {BR} at (11,1571) size 0x15 - RenderText {#text} at (11,1586) size 90x540 - text run at (11,1586) width 67: "Nulla ligula" - text run at (11,1601) width 78: "dui, euismod" - text run at (11,1616) width 66: "et, sodales" - text run at (11,1631) width 29: "quis," - text run at (11,1646) width 64: "sollicitudin" - text run at (11,1661) width 73: "quis, elit. In" - text run at (11,1676) width 82: "adipiscing est" - text run at (11,1691) width 60: "sed enim." - text run at (11,1706) width 51: "Fusce at" - text run at (11,1721) width 73: "massa vitae" - text run at (11,1736) width 87: "metus semper" - text run at (11,1751) width 60: "hendrerit." - text run at (11,1766) width 78: "Integer vitae" - text run at (11,1781) width 67: "urna. Nulla" - text run at (11,1796) width 68: "eget ligula." - text run at (11,1811) width 77: "Etiam libero." - text run at (11,1826) width 84: "Maecenas nisi" - text run at (11,1841) width 87: "nibh, convallis" - text run at (11,1856) width 58: "a, feugiat" - text run at (11,1871) width 87: "vitae, pulvinar" - text run at (11,1886) width 40: "et, mi." - text run at (11,1901) width 87: "Curabitur arcu" - text run at (11,1916) width 34: "pede," - text run at (11,1931) width 90: "adipiscing sed," - text run at (11,1946) width 76: "egestas nec," - text run at (11,1961) width 79: "commodo in," - text run at (11,1976) width 58: "elit. Nulla" - text run at (11,1991) width 77: "facilisi. Proin" - text run at (11,2006) width 87: "varius pede et" - text run at (11,2021) width 61: "dui lacinia" - text run at (11,2036) width 89: "dapibus. Morbi" - text run at (11,2051) width 67: "nec augue." - text run at (11,2066) width 31: "Proin" - text run at (11,2081) width 58: "imperdiet" - text run at (11,2096) width 50: "lacus eu" - text run at (11,2111) width 37: "tellus." -layer at (366,28) size 125x100 clip at (367,29) size 110x85 scrollWidth 420 scrollHeight 455 - RenderBlock {DIV} at (358,20) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x455 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." - RenderBR {BR} at (96,160) size 1x15 - RenderBR {BR} at (10,175) size 0x15 - RenderText {#text} at (10,190) size 398x135 - text run at (10,190) width 357: "Cras commodo rutrum augue. Vivamus iaculis. Nullam est." - text run at (10,205) width 387: "Maecenas consequat. Sed id dui. Vivamus a nisl. Donec pretium" - text run at (10,220) width 375: "sapien. Proin et ligula et ligula placerat pulvinar. Aliquam erat" - text run at (10,235) width 378: "volutpat. Proin id est. Suspendisse cursus, magna at hendrerit" - text run at (10,250) width 389: "consequat, mauris est imperdiet neque, a ultrices arcu urna non" - text run at (10,265) width 398: "nunc. Quisque tellus. Nulla nulla justo, vehicula nec, pellentesque" - text run at (10,280) width 386: "eu, iaculis et, ligula. Praesent mattis ante vel sem. Suspendisse" - text run at (10,295) width 372: "porta rhoncus urna. Phasellus felis. Praesent viverra convallis" - text run at (10,310) width 368: "libero. Maecenas non augue. Donec hendrerit lectus id enim." - RenderBR {BR} at (377,310) size 1x15 - RenderBR {BR} at (10,325) size 0x15 - RenderText {#text} at (10,340) size 397x105 - text run at (10,340) width 397: "Nulla ligula dui, euismod et, sodales quis, sollicitudin quis, elit. In" - text run at (10,355) width 368: "adipiscing est sed enim. Fusce at massa vitae metus semper" - text run at (10,370) width 365: "hendrerit. Integer vitae urna. Nulla eget ligula. Etiam libero." - text run at (10,385) width 371: "Maecenas nisi nibh, convallis a, feugiat vitae, pulvinar et, mi." - text run at (10,400) width 381: "Curabitur arcu pede, adipiscing sed, egestas nec, commodo in," - text run at (10,415) width 386: "elit. Nulla facilisi. Proin varius pede et dui lacinia dapibus. Morbi" - text run at (10,430) width 258: "nec augue. Proin imperdiet lacus eu tellus." -layer at (535,28) size 125x100 clip at (536,29) size 110x85 scrollHeight 2135 - RenderBlock {DIV} at (527,20) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderText {#text} at (11,11) size 89x810 - text run at (11,11) width 79: "Lorem ipsum" - text run at (11,26) width 89: "dolor sit amet," - text run at (11,41) width 78: "consectetuer" - text run at (11,56) width 87: "adipiscing elit." - text run at (11,71) width 75: "Morbi et nisi" - text run at (11,86) width 35: "ut est" - text run at (11,101) width 59: "venenatis" - text run at (11,116) width 47: "viverra." - text run at (11,131) width 79: "Aenean pede" - text run at (11,146) width 72: "orci, blandit" - text run at (11,161) width 84: "quis, faucibus" - text run at (11,176) width 80: "quis, egestas" - text run at (11,191) width 41: "ut, mi." - text run at (11,206) width 77: "Pellentesque" - text run at (11,221) width 73: "enim purus," - text run at (11,236) width 59: "venenatis" - text run at (11,251) width 61: "dignissim," - text run at (11,266) width 69: "tincidunt a," - text run at (11,281) width 72: "ullamcorper" - text run at (11,296) width 66: "eget, nibh." - text run at (11,311) width 88: "Nullam ut sem" - text run at (11,326) width 86: "adipiscing orci" - text run at (11,341) width 50: "vehicula" - text run at (11,356) width 59: "interdum." - text run at (11,371) width 81: "Proin a enim." - text run at (11,386) width 56: "Phasellus" - text run at (11,401) width 69: "sollicitudin," - text run at (11,416) width 75: "magna vitae" - text run at (11,431) width 67: "vestibulum" - text run at (11,446) width 85: "facilisis, tellus" - text run at (11,461) width 71: "nunc iaculis" - text run at (11,476) width 46: "arcu, in" - text run at (11,491) width 81: "molestie sem" - text run at (11,506) width 75: "velit tempus" - text run at (11,521) width 40: "est. In" - text run at (11,536) width 78: "eleifend velit" - text run at (11,551) width 42: "at sem" - text run at (11,566) width 60: "adipiscing" - text run at (11,581) width 84: "sodales. Nunc" - text run at (11,596) width 72: "sapien felis," - text run at (11,611) width 69: "aliquam et," - text run at (11,626) width 50: "volutpat" - text run at (11,641) width 53: "rhoncus," - text run at (11,656) width 83: "condimentum" - text run at (11,671) width 60: "ut, tortor." - text run at (11,686) width 71: "Integer est." - text run at (11,701) width 49: "Quisque" - text run at (11,716) width 47: "viverra." - text run at (11,731) width 78: "Praesent sed" - text run at (11,746) width 31: "arcu." - text run at (11,761) width 74: "Maecenas id" - text run at (11,776) width 68: "lorem a leo" - text run at (11,791) width 45: "lobortis" - text run at (11,806) width 87: "condimentum." - RenderBR {BR} at (97,806) size 1x15 - RenderBR {BR} at (11,821) size 0x15 - RenderText {#text} at (11,836) size 89x735 - text run at (11,836) width 27: "Cras" - text run at (11,851) width 59: "commodo" - text run at (11,866) width 88: "rutrum augue." - text run at (11,881) width 52: "Vivamus" - text run at (11,896) width 88: "iaculis. Nullam" - text run at (11,911) width 86: "est. Maecenas" - text run at (11,926) width 66: "consequat." - text run at (11,941) width 65: "Sed id dui." - text run at (11,956) width 63: "Vivamus a" - text run at (11,971) width 67: "nisl. Donec" - text run at (11,986) width 48: "pretium" - text run at (11,1001) width 79: "sapien. Proin" - text run at (11,1016) width 65: "et ligula et" - text run at (11,1031) width 85: "ligula placerat" - text run at (11,1046) width 54: "pulvinar." - text run at (11,1061) width 78: "Aliquam erat" - text run at (11,1076) width 89: "volutpat. Proin" - text run at (11,1091) width 38: "id est." - text run at (11,1106) width 75: "Suspendisse" - text run at (11,1121) width 89: "cursus, magna" - text run at (11,1136) width 72: "at hendrerit" - text run at (11,1151) width 66: "consequat," - text run at (11,1166) width 64: "mauris est" - text run at (11,1181) width 58: "imperdiet" - text run at (11,1196) width 53: "neque, a" - text run at (11,1211) width 75: "ultrices arcu" - text run at (11,1226) width 55: "urna non" - text run at (11,1241) width 87: "nunc. Quisque" - text run at (11,1256) width 72: "tellus. Nulla" - text run at (11,1271) width 68: "nulla justo," - text run at (11,1286) width 80: "vehicula nec," - text run at (11,1301) width 77: "pellentesque" - text run at (11,1316) width 81: "eu, iaculis et," - text run at (11,1331) width 37: "ligula." - text run at (11,1346) width 53: "Praesent" - text run at (11,1361) width 69: "mattis ante" - text run at (11,1376) width 52: "vel sem." - text run at (11,1391) width 75: "Suspendisse" - text run at (11,1406) width 84: "porta rhoncus" - text run at (11,1421) width 32: "urna." - text run at (11,1436) width 89: "Phasellus felis." - text run at (11,1451) width 53: "Praesent" - text run at (11,1466) width 43: "viverra" - text run at (11,1481) width 52: "convallis" - text run at (11,1496) width 38: "libero." - text run at (11,1511) width 86: "Maecenas non" - text run at (11,1526) width 84: "augue. Donec" - text run at (11,1541) width 56: "hendrerit" - text run at (11,1556) width 89: "lectus id enim." - RenderBR {BR} at (99,1556) size 1x15 - RenderBR {BR} at (11,1571) size 0x15 - RenderText {#text} at (11,1586) size 90x540 - text run at (11,1586) width 67: "Nulla ligula" - text run at (11,1601) width 78: "dui, euismod" - text run at (11,1616) width 66: "et, sodales" - text run at (11,1631) width 29: "quis," - text run at (11,1646) width 64: "sollicitudin" - text run at (11,1661) width 73: "quis, elit. In" - text run at (11,1676) width 82: "adipiscing est" - text run at (11,1691) width 60: "sed enim." - text run at (11,1706) width 51: "Fusce at" - text run at (11,1721) width 73: "massa vitae" - text run at (11,1736) width 87: "metus semper" - text run at (11,1751) width 60: "hendrerit." - text run at (11,1766) width 78: "Integer vitae" - text run at (11,1781) width 67: "urna. Nulla" - text run at (11,1796) width 68: "eget ligula." - text run at (11,1811) width 77: "Etiam libero." - text run at (11,1826) width 84: "Maecenas nisi" - text run at (11,1841) width 87: "nibh, convallis" - text run at (11,1856) width 58: "a, feugiat" - text run at (11,1871) width 87: "vitae, pulvinar" - text run at (11,1886) width 40: "et, mi." - text run at (11,1901) width 87: "Curabitur arcu" - text run at (11,1916) width 34: "pede," - text run at (11,1931) width 90: "adipiscing sed," - text run at (11,1946) width 76: "egestas nec," - text run at (11,1961) width 79: "commodo in," - text run at (11,1976) width 58: "elit. Nulla" - text run at (11,1991) width 77: "facilisi. Proin" - text run at (11,2006) width 87: "varius pede et" - text run at (11,2021) width 61: "dui lacinia" - text run at (11,2036) width 89: "dapibus. Morbi" - text run at (11,2051) width 67: "nec augue." - text run at (11,2066) width 31: "Proin" - text run at (11,2081) width 58: "imperdiet" - text run at (11,2096) width 50: "lacus eu" - text run at (11,2111) width 37: "tellus." -layer at (28,168) size 125x100 clip at (29,169) size 110x98 scrollHeight 2135 - RenderBlock {DIV} at (20,160) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderText {#text} at (11,11) size 89x810 - text run at (11,11) width 79: "Lorem ipsum" - text run at (11,26) width 89: "dolor sit amet," - text run at (11,41) width 78: "consectetuer" - text run at (11,56) width 87: "adipiscing elit." - text run at (11,71) width 75: "Morbi et nisi" - text run at (11,86) width 35: "ut est" - text run at (11,101) width 59: "venenatis" - text run at (11,116) width 47: "viverra." - text run at (11,131) width 79: "Aenean pede" - text run at (11,146) width 72: "orci, blandit" - text run at (11,161) width 84: "quis, faucibus" - text run at (11,176) width 80: "quis, egestas" - text run at (11,191) width 41: "ut, mi." - text run at (11,206) width 77: "Pellentesque" - text run at (11,221) width 73: "enim purus," - text run at (11,236) width 59: "venenatis" - text run at (11,251) width 61: "dignissim," - text run at (11,266) width 69: "tincidunt a," - text run at (11,281) width 72: "ullamcorper" - text run at (11,296) width 66: "eget, nibh." - text run at (11,311) width 88: "Nullam ut sem" - text run at (11,326) width 86: "adipiscing orci" - text run at (11,341) width 50: "vehicula" - text run at (11,356) width 59: "interdum." - text run at (11,371) width 81: "Proin a enim." - text run at (11,386) width 56: "Phasellus" - text run at (11,401) width 69: "sollicitudin," - text run at (11,416) width 75: "magna vitae" - text run at (11,431) width 67: "vestibulum" - text run at (11,446) width 85: "facilisis, tellus" - text run at (11,461) width 71: "nunc iaculis" - text run at (11,476) width 46: "arcu, in" - text run at (11,491) width 81: "molestie sem" - text run at (11,506) width 75: "velit tempus" - text run at (11,521) width 40: "est. In" - text run at (11,536) width 78: "eleifend velit" - text run at (11,551) width 42: "at sem" - text run at (11,566) width 60: "adipiscing" - text run at (11,581) width 84: "sodales. Nunc" - text run at (11,596) width 72: "sapien felis," - text run at (11,611) width 69: "aliquam et," - text run at (11,626) width 50: "volutpat" - text run at (11,641) width 53: "rhoncus," - text run at (11,656) width 83: "condimentum" - text run at (11,671) width 60: "ut, tortor." - text run at (11,686) width 71: "Integer est." - text run at (11,701) width 49: "Quisque" - text run at (11,716) width 47: "viverra." - text run at (11,731) width 78: "Praesent sed" - text run at (11,746) width 31: "arcu." - text run at (11,761) width 74: "Maecenas id" - text run at (11,776) width 68: "lorem a leo" - text run at (11,791) width 45: "lobortis" - text run at (11,806) width 87: "condimentum." - RenderBR {BR} at (97,806) size 1x15 - RenderBR {BR} at (11,821) size 0x15 - RenderText {#text} at (11,836) size 89x735 - text run at (11,836) width 27: "Cras" - text run at (11,851) width 59: "commodo" - text run at (11,866) width 88: "rutrum augue." - text run at (11,881) width 52: "Vivamus" - text run at (11,896) width 88: "iaculis. Nullam" - text run at (11,911) width 86: "est. Maecenas" - text run at (11,926) width 66: "consequat." - text run at (11,941) width 65: "Sed id dui." - text run at (11,956) width 63: "Vivamus a" - text run at (11,971) width 67: "nisl. Donec" - text run at (11,986) width 48: "pretium" - text run at (11,1001) width 79: "sapien. Proin" - text run at (11,1016) width 65: "et ligula et" - text run at (11,1031) width 85: "ligula placerat" - text run at (11,1046) width 54: "pulvinar." - text run at (11,1061) width 78: "Aliquam erat" - text run at (11,1076) width 89: "volutpat. Proin" - text run at (11,1091) width 38: "id est." - text run at (11,1106) width 75: "Suspendisse" - text run at (11,1121) width 89: "cursus, magna" - text run at (11,1136) width 72: "at hendrerit" - text run at (11,1151) width 66: "consequat," - text run at (11,1166) width 64: "mauris est" - text run at (11,1181) width 58: "imperdiet" - text run at (11,1196) width 53: "neque, a" - text run at (11,1211) width 75: "ultrices arcu" - text run at (11,1226) width 55: "urna non" - text run at (11,1241) width 87: "nunc. Quisque" - text run at (11,1256) width 72: "tellus. Nulla" - text run at (11,1271) width 68: "nulla justo," - text run at (11,1286) width 80: "vehicula nec," - text run at (11,1301) width 77: "pellentesque" - text run at (11,1316) width 81: "eu, iaculis et," - text run at (11,1331) width 37: "ligula." - text run at (11,1346) width 53: "Praesent" - text run at (11,1361) width 69: "mattis ante" - text run at (11,1376) width 52: "vel sem." - text run at (11,1391) width 75: "Suspendisse" - text run at (11,1406) width 84: "porta rhoncus" - text run at (11,1421) width 32: "urna." - text run at (11,1436) width 89: "Phasellus felis." - text run at (11,1451) width 53: "Praesent" - text run at (11,1466) width 43: "viverra" - text run at (11,1481) width 52: "convallis" - text run at (11,1496) width 38: "libero." - text run at (11,1511) width 86: "Maecenas non" - text run at (11,1526) width 84: "augue. Donec" - text run at (11,1541) width 56: "hendrerit" - text run at (11,1556) width 89: "lectus id enim." - RenderBR {BR} at (99,1556) size 1x15 - RenderBR {BR} at (11,1571) size 0x15 - RenderText {#text} at (11,1586) size 90x540 - text run at (11,1586) width 67: "Nulla ligula" - text run at (11,1601) width 78: "dui, euismod" - text run at (11,1616) width 66: "et, sodales" - text run at (11,1631) width 29: "quis," - text run at (11,1646) width 64: "sollicitudin" - text run at (11,1661) width 73: "quis, elit. In" - text run at (11,1676) width 82: "adipiscing est" - text run at (11,1691) width 60: "sed enim." - text run at (11,1706) width 51: "Fusce at" - text run at (11,1721) width 73: "massa vitae" - text run at (11,1736) width 87: "metus semper" - text run at (11,1751) width 60: "hendrerit." - text run at (11,1766) width 78: "Integer vitae" - text run at (11,1781) width 67: "urna. Nulla" - text run at (11,1796) width 68: "eget ligula." - text run at (11,1811) width 77: "Etiam libero." - text run at (11,1826) width 84: "Maecenas nisi" - text run at (11,1841) width 87: "nibh, convallis" - text run at (11,1856) width 58: "a, feugiat" - text run at (11,1871) width 87: "vitae, pulvinar" - text run at (11,1886) width 40: "et, mi." - text run at (11,1901) width 87: "Curabitur arcu" - text run at (11,1916) width 34: "pede," - text run at (11,1931) width 90: "adipiscing sed," - text run at (11,1946) width 76: "egestas nec," - text run at (11,1961) width 79: "commodo in," - text run at (11,1976) width 58: "elit. Nulla" - text run at (11,1991) width 77: "facilisi. Proin" - text run at (11,2006) width 87: "varius pede et" - text run at (11,2021) width 61: "dui lacinia" - text run at (11,2036) width 89: "dapibus. Morbi" - text run at (11,2051) width 67: "nec augue." - text run at (11,2066) width 31: "Proin" - text run at (11,2081) width 58: "imperdiet" - text run at (11,2096) width 50: "lacus eu" - text run at (11,2111) width 37: "tellus." -layer at (197,168) size 125x100 clip at (198,169) size 110x85 scrollWidth 420 scrollHeight 455 - RenderBlock {DIV} at (189,160) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x455 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." - RenderBR {BR} at (96,160) size 1x15 - RenderBR {BR} at (10,175) size 0x15 - RenderText {#text} at (10,190) size 398x135 - text run at (10,190) width 357: "Cras commodo rutrum augue. Vivamus iaculis. Nullam est." - text run at (10,205) width 387: "Maecenas consequat. Sed id dui. Vivamus a nisl. Donec pretium" - text run at (10,220) width 375: "sapien. Proin et ligula et ligula placerat pulvinar. Aliquam erat" - text run at (10,235) width 378: "volutpat. Proin id est. Suspendisse cursus, magna at hendrerit" - text run at (10,250) width 389: "consequat, mauris est imperdiet neque, a ultrices arcu urna non" - text run at (10,265) width 398: "nunc. Quisque tellus. Nulla nulla justo, vehicula nec, pellentesque" - text run at (10,280) width 386: "eu, iaculis et, ligula. Praesent mattis ante vel sem. Suspendisse" - text run at (10,295) width 372: "porta rhoncus urna. Phasellus felis. Praesent viverra convallis" - text run at (10,310) width 368: "libero. Maecenas non augue. Donec hendrerit lectus id enim." - RenderBR {BR} at (377,310) size 1x15 - RenderBR {BR} at (10,325) size 0x15 - RenderText {#text} at (10,340) size 397x105 - text run at (10,340) width 397: "Nulla ligula dui, euismod et, sodales quis, sollicitudin quis, elit. In" - text run at (10,355) width 368: "adipiscing est sed enim. Fusce at massa vitae metus semper" - text run at (10,370) width 365: "hendrerit. Integer vitae urna. Nulla eget ligula. Etiam libero." - text run at (10,385) width 371: "Maecenas nisi nibh, convallis a, feugiat vitae, pulvinar et, mi." - text run at (10,400) width 381: "Curabitur arcu pede, adipiscing sed, egestas nec, commodo in," - text run at (10,415) width 386: "elit. Nulla facilisi. Proin varius pede et dui lacinia dapibus. Morbi" - text run at (10,430) width 258: "nec augue. Proin imperdiet lacus eu tellus." -layer at (366,168) size 125x100 clip at (367,169) size 110x98 scrollHeight 2135 - RenderBlock {DIV} at (358,160) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderText {#text} at (11,11) size 89x810 - text run at (11,11) width 79: "Lorem ipsum" - text run at (11,26) width 89: "dolor sit amet," - text run at (11,41) width 78: "consectetuer" - text run at (11,56) width 87: "adipiscing elit." - text run at (11,71) width 75: "Morbi et nisi" - text run at (11,86) width 35: "ut est" - text run at (11,101) width 59: "venenatis" - text run at (11,116) width 47: "viverra." - text run at (11,131) width 79: "Aenean pede" - text run at (11,146) width 72: "orci, blandit" - text run at (11,161) width 84: "quis, faucibus" - text run at (11,176) width 80: "quis, egestas" - text run at (11,191) width 41: "ut, mi." - text run at (11,206) width 77: "Pellentesque" - text run at (11,221) width 73: "enim purus," - text run at (11,236) width 59: "venenatis" - text run at (11,251) width 61: "dignissim," - text run at (11,266) width 69: "tincidunt a," - text run at (11,281) width 72: "ullamcorper" - text run at (11,296) width 66: "eget, nibh." - text run at (11,311) width 88: "Nullam ut sem" - text run at (11,326) width 86: "adipiscing orci" - text run at (11,341) width 50: "vehicula" - text run at (11,356) width 59: "interdum." - text run at (11,371) width 81: "Proin a enim." - text run at (11,386) width 56: "Phasellus" - text run at (11,401) width 69: "sollicitudin," - text run at (11,416) width 75: "magna vitae" - text run at (11,431) width 67: "vestibulum" - text run at (11,446) width 85: "facilisis, tellus" - text run at (11,461) width 71: "nunc iaculis" - text run at (11,476) width 46: "arcu, in" - text run at (11,491) width 81: "molestie sem" - text run at (11,506) width 75: "velit tempus" - text run at (11,521) width 40: "est. In" - text run at (11,536) width 78: "eleifend velit" - text run at (11,551) width 42: "at sem" - text run at (11,566) width 60: "adipiscing" - text run at (11,581) width 84: "sodales. Nunc" - text run at (11,596) width 72: "sapien felis," - text run at (11,611) width 69: "aliquam et," - text run at (11,626) width 50: "volutpat" - text run at (11,641) width 53: "rhoncus," - text run at (11,656) width 83: "condimentum" - text run at (11,671) width 60: "ut, tortor." - text run at (11,686) width 71: "Integer est." - text run at (11,701) width 49: "Quisque" - text run at (11,716) width 47: "viverra." - text run at (11,731) width 78: "Praesent sed" - text run at (11,746) width 31: "arcu." - text run at (11,761) width 74: "Maecenas id" - text run at (11,776) width 68: "lorem a leo" - text run at (11,791) width 45: "lobortis" - text run at (11,806) width 87: "condimentum." - RenderBR {BR} at (97,806) size 1x15 - RenderBR {BR} at (11,821) size 0x15 - RenderText {#text} at (11,836) size 89x735 - text run at (11,836) width 27: "Cras" - text run at (11,851) width 59: "commodo" - text run at (11,866) width 88: "rutrum augue." - text run at (11,881) width 52: "Vivamus" - text run at (11,896) width 88: "iaculis. Nullam" - text run at (11,911) width 86: "est. Maecenas" - text run at (11,926) width 66: "consequat." - text run at (11,941) width 65: "Sed id dui." - text run at (11,956) width 63: "Vivamus a" - text run at (11,971) width 67: "nisl. Donec" - text run at (11,986) width 48: "pretium" - text run at (11,1001) width 79: "sapien. Proin" - text run at (11,1016) width 65: "et ligula et" - text run at (11,1031) width 85: "ligula placerat" - text run at (11,1046) width 54: "pulvinar." - text run at (11,1061) width 78: "Aliquam erat" - text run at (11,1076) width 89: "volutpat. Proin" - text run at (11,1091) width 38: "id est." - text run at (11,1106) width 75: "Suspendisse" - text run at (11,1121) width 89: "cursus, magna" - text run at (11,1136) width 72: "at hendrerit" - text run at (11,1151) width 66: "consequat," - text run at (11,1166) width 64: "mauris est" - text run at (11,1181) width 58: "imperdiet" - text run at (11,1196) width 53: "neque, a" - text run at (11,1211) width 75: "ultrices arcu" - text run at (11,1226) width 55: "urna non" - text run at (11,1241) width 87: "nunc. Quisque" - text run at (11,1256) width 72: "tellus. Nulla" - text run at (11,1271) width 68: "nulla justo," - text run at (11,1286) width 80: "vehicula nec," - text run at (11,1301) width 77: "pellentesque" - text run at (11,1316) width 81: "eu, iaculis et," - text run at (11,1331) width 37: "ligula." - text run at (11,1346) width 53: "Praesent" - text run at (11,1361) width 69: "mattis ante" - text run at (11,1376) width 52: "vel sem." - text run at (11,1391) width 75: "Suspendisse" - text run at (11,1406) width 84: "porta rhoncus" - text run at (11,1421) width 32: "urna." - text run at (11,1436) width 89: "Phasellus felis." - text run at (11,1451) width 53: "Praesent" - text run at (11,1466) width 43: "viverra" - text run at (11,1481) width 52: "convallis" - text run at (11,1496) width 38: "libero." - text run at (11,1511) width 86: "Maecenas non" - text run at (11,1526) width 84: "augue. Donec" - text run at (11,1541) width 56: "hendrerit" - text run at (11,1556) width 89: "lectus id enim." - RenderBR {BR} at (99,1556) size 1x15 - RenderBR {BR} at (11,1571) size 0x15 - RenderText {#text} at (11,1586) size 90x540 - text run at (11,1586) width 67: "Nulla ligula" - text run at (11,1601) width 78: "dui, euismod" - text run at (11,1616) width 66: "et, sodales" - text run at (11,1631) width 29: "quis," - text run at (11,1646) width 64: "sollicitudin" - text run at (11,1661) width 73: "quis, elit. In" - text run at (11,1676) width 82: "adipiscing est" - text run at (11,1691) width 60: "sed enim." - text run at (11,1706) width 51: "Fusce at" - text run at (11,1721) width 73: "massa vitae" - text run at (11,1736) width 87: "metus semper" - text run at (11,1751) width 60: "hendrerit." - text run at (11,1766) width 78: "Integer vitae" - text run at (11,1781) width 67: "urna. Nulla" - text run at (11,1796) width 68: "eget ligula." - text run at (11,1811) width 77: "Etiam libero." - text run at (11,1826) width 84: "Maecenas nisi" - text run at (11,1841) width 87: "nibh, convallis" - text run at (11,1856) width 58: "a, feugiat" - text run at (11,1871) width 87: "vitae, pulvinar" - text run at (11,1886) width 40: "et, mi." - text run at (11,1901) width 87: "Curabitur arcu" - text run at (11,1916) width 34: "pede," - text run at (11,1931) width 90: "adipiscing sed," - text run at (11,1946) width 76: "egestas nec," - text run at (11,1961) width 79: "commodo in," - text run at (11,1976) width 58: "elit. Nulla" - text run at (11,1991) width 77: "facilisi. Proin" - text run at (11,2006) width 87: "varius pede et" - text run at (11,2021) width 61: "dui lacinia" - text run at (11,2036) width 89: "dapibus. Morbi" - text run at (11,2051) width 67: "nec augue." - text run at (11,2066) width 31: "Proin" - text run at (11,2081) width 58: "imperdiet" - text run at (11,2096) width 50: "lacus eu" - text run at (11,2111) width 37: "tellus." -layer at (535,168) size 125x100 clip at (536,169) size 123x85 scrollWidth 420 scrollHeight 185 - RenderBlock {DIV} at (527,160) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x185 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." -layer at (28,308) size 125x100 clip at (29,309) size 110x98 scrollHeight 2135 - RenderBlock {DIV} at (20,300) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderText {#text} at (11,11) size 89x810 - text run at (11,11) width 79: "Lorem ipsum" - text run at (11,26) width 89: "dolor sit amet," - text run at (11,41) width 78: "consectetuer" - text run at (11,56) width 87: "adipiscing elit." - text run at (11,71) width 75: "Morbi et nisi" - text run at (11,86) width 35: "ut est" - text run at (11,101) width 59: "venenatis" - text run at (11,116) width 47: "viverra." - text run at (11,131) width 79: "Aenean pede" - text run at (11,146) width 72: "orci, blandit" - text run at (11,161) width 84: "quis, faucibus" - text run at (11,176) width 80: "quis, egestas" - text run at (11,191) width 41: "ut, mi." - text run at (11,206) width 77: "Pellentesque" - text run at (11,221) width 73: "enim purus," - text run at (11,236) width 59: "venenatis" - text run at (11,251) width 61: "dignissim," - text run at (11,266) width 69: "tincidunt a," - text run at (11,281) width 72: "ullamcorper" - text run at (11,296) width 66: "eget, nibh." - text run at (11,311) width 88: "Nullam ut sem" - text run at (11,326) width 86: "adipiscing orci" - text run at (11,341) width 50: "vehicula" - text run at (11,356) width 59: "interdum." - text run at (11,371) width 81: "Proin a enim." - text run at (11,386) width 56: "Phasellus" - text run at (11,401) width 69: "sollicitudin," - text run at (11,416) width 75: "magna vitae" - text run at (11,431) width 67: "vestibulum" - text run at (11,446) width 85: "facilisis, tellus" - text run at (11,461) width 71: "nunc iaculis" - text run at (11,476) width 46: "arcu, in" - text run at (11,491) width 81: "molestie sem" - text run at (11,506) width 75: "velit tempus" - text run at (11,521) width 40: "est. In" - text run at (11,536) width 78: "eleifend velit" - text run at (11,551) width 42: "at sem" - text run at (11,566) width 60: "adipiscing" - text run at (11,581) width 84: "sodales. Nunc" - text run at (11,596) width 72: "sapien felis," - text run at (11,611) width 69: "aliquam et," - text run at (11,626) width 50: "volutpat" - text run at (11,641) width 53: "rhoncus," - text run at (11,656) width 83: "condimentum" - text run at (11,671) width 60: "ut, tortor." - text run at (11,686) width 71: "Integer est." - text run at (11,701) width 49: "Quisque" - text run at (11,716) width 47: "viverra." - text run at (11,731) width 78: "Praesent sed" - text run at (11,746) width 31: "arcu." - text run at (11,761) width 74: "Maecenas id" - text run at (11,776) width 68: "lorem a leo" - text run at (11,791) width 45: "lobortis" - text run at (11,806) width 87: "condimentum." - RenderBR {BR} at (97,806) size 1x15 - RenderBR {BR} at (11,821) size 0x15 - RenderText {#text} at (11,836) size 89x735 - text run at (11,836) width 27: "Cras" - text run at (11,851) width 59: "commodo" - text run at (11,866) width 88: "rutrum augue." - text run at (11,881) width 52: "Vivamus" - text run at (11,896) width 88: "iaculis. Nullam" - text run at (11,911) width 86: "est. Maecenas" - text run at (11,926) width 66: "consequat." - text run at (11,941) width 65: "Sed id dui." - text run at (11,956) width 63: "Vivamus a" - text run at (11,971) width 67: "nisl. Donec" - text run at (11,986) width 48: "pretium" - text run at (11,1001) width 79: "sapien. Proin" - text run at (11,1016) width 65: "et ligula et" - text run at (11,1031) width 85: "ligula placerat" - text run at (11,1046) width 54: "pulvinar." - text run at (11,1061) width 78: "Aliquam erat" - text run at (11,1076) width 89: "volutpat. Proin" - text run at (11,1091) width 38: "id est." - text run at (11,1106) width 75: "Suspendisse" - text run at (11,1121) width 89: "cursus, magna" - text run at (11,1136) width 72: "at hendrerit" - text run at (11,1151) width 66: "consequat," - text run at (11,1166) width 64: "mauris est" - text run at (11,1181) width 58: "imperdiet" - text run at (11,1196) width 53: "neque, a" - text run at (11,1211) width 75: "ultrices arcu" - text run at (11,1226) width 55: "urna non" - text run at (11,1241) width 87: "nunc. Quisque" - text run at (11,1256) width 72: "tellus. Nulla" - text run at (11,1271) width 68: "nulla justo," - text run at (11,1286) width 80: "vehicula nec," - text run at (11,1301) width 77: "pellentesque" - text run at (11,1316) width 81: "eu, iaculis et," - text run at (11,1331) width 37: "ligula." - text run at (11,1346) width 53: "Praesent" - text run at (11,1361) width 69: "mattis ante" - text run at (11,1376) width 52: "vel sem." - text run at (11,1391) width 75: "Suspendisse" - text run at (11,1406) width 84: "porta rhoncus" - text run at (11,1421) width 32: "urna." - text run at (11,1436) width 89: "Phasellus felis." - text run at (11,1451) width 53: "Praesent" - text run at (11,1466) width 43: "viverra" - text run at (11,1481) width 52: "convallis" - text run at (11,1496) width 38: "libero." - text run at (11,1511) width 86: "Maecenas non" - text run at (11,1526) width 84: "augue. Donec" - text run at (11,1541) width 56: "hendrerit" - text run at (11,1556) width 89: "lectus id enim." - RenderBR {BR} at (99,1556) size 1x15 - RenderBR {BR} at (11,1571) size 0x15 - RenderText {#text} at (11,1586) size 90x540 - text run at (11,1586) width 67: "Nulla ligula" - text run at (11,1601) width 78: "dui, euismod" - text run at (11,1616) width 66: "et, sodales" - text run at (11,1631) width 29: "quis," - text run at (11,1646) width 64: "sollicitudin" - text run at (11,1661) width 73: "quis, elit. In" - text run at (11,1676) width 82: "adipiscing est" - text run at (11,1691) width 60: "sed enim." - text run at (11,1706) width 51: "Fusce at" - text run at (11,1721) width 73: "massa vitae" - text run at (11,1736) width 87: "metus semper" - text run at (11,1751) width 60: "hendrerit." - text run at (11,1766) width 78: "Integer vitae" - text run at (11,1781) width 67: "urna. Nulla" - text run at (11,1796) width 68: "eget ligula." - text run at (11,1811) width 77: "Etiam libero." - text run at (11,1826) width 84: "Maecenas nisi" - text run at (11,1841) width 87: "nibh, convallis" - text run at (11,1856) width 58: "a, feugiat" - text run at (11,1871) width 87: "vitae, pulvinar" - text run at (11,1886) width 40: "et, mi." - text run at (11,1901) width 87: "Curabitur arcu" - text run at (11,1916) width 34: "pede," - text run at (11,1931) width 90: "adipiscing sed," - text run at (11,1946) width 76: "egestas nec," - text run at (11,1961) width 79: "commodo in," - text run at (11,1976) width 58: "elit. Nulla" - text run at (11,1991) width 77: "facilisi. Proin" - text run at (11,2006) width 87: "varius pede et" - text run at (11,2021) width 61: "dui lacinia" - text run at (11,2036) width 89: "dapibus. Morbi" - text run at (11,2051) width 67: "nec augue." - text run at (11,2066) width 31: "Proin" - text run at (11,2081) width 58: "imperdiet" - text run at (11,2096) width 50: "lacus eu" - text run at (11,2111) width 37: "tellus." -layer at (197,308) size 125x100 clip at (198,309) size 123x85 scrollWidth 420 scrollHeight 185 - RenderBlock {DIV} at (189,300) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x185 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." -layer at (366,308) size 125x100 clip at (367,309) size 110x85 scrollWidth 420 scrollHeight 455 - RenderBlock {DIV} at (358,300) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x455 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." - RenderBR {BR} at (96,160) size 1x15 - RenderBR {BR} at (10,175) size 0x15 - RenderText {#text} at (10,190) size 398x135 - text run at (10,190) width 357: "Cras commodo rutrum augue. Vivamus iaculis. Nullam est." - text run at (10,205) width 387: "Maecenas consequat. Sed id dui. Vivamus a nisl. Donec pretium" - text run at (10,220) width 375: "sapien. Proin et ligula et ligula placerat pulvinar. Aliquam erat" - text run at (10,235) width 378: "volutpat. Proin id est. Suspendisse cursus, magna at hendrerit" - text run at (10,250) width 389: "consequat, mauris est imperdiet neque, a ultrices arcu urna non" - text run at (10,265) width 398: "nunc. Quisque tellus. Nulla nulla justo, vehicula nec, pellentesque" - text run at (10,280) width 386: "eu, iaculis et, ligula. Praesent mattis ante vel sem. Suspendisse" - text run at (10,295) width 372: "porta rhoncus urna. Phasellus felis. Praesent viverra convallis" - text run at (10,310) width 368: "libero. Maecenas non augue. Donec hendrerit lectus id enim." - RenderBR {BR} at (377,310) size 1x15 - RenderBR {BR} at (10,325) size 0x15 - RenderText {#text} at (10,340) size 397x105 - text run at (10,340) width 397: "Nulla ligula dui, euismod et, sodales quis, sollicitudin quis, elit. In" - text run at (10,355) width 368: "adipiscing est sed enim. Fusce at massa vitae metus semper" - text run at (10,370) width 365: "hendrerit. Integer vitae urna. Nulla eget ligula. Etiam libero." - text run at (10,385) width 371: "Maecenas nisi nibh, convallis a, feugiat vitae, pulvinar et, mi." - text run at (10,400) width 381: "Curabitur arcu pede, adipiscing sed, egestas nec, commodo in," - text run at (10,415) width 386: "elit. Nulla facilisi. Proin varius pede et dui lacinia dapibus. Morbi" - text run at (10,430) width 258: "nec augue. Proin imperdiet lacus eu tellus." -layer at (535,308) size 125x100 clip at (536,309) size 110x85 scrollWidth 420 scrollHeight 455 - RenderBlock {DIV} at (527,300) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x455 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." - RenderBR {BR} at (96,160) size 1x15 - RenderBR {BR} at (10,175) size 0x15 - RenderText {#text} at (10,190) size 398x135 - text run at (10,190) width 357: "Cras commodo rutrum augue. Vivamus iaculis. Nullam est." - text run at (10,205) width 387: "Maecenas consequat. Sed id dui. Vivamus a nisl. Donec pretium" - text run at (10,220) width 375: "sapien. Proin et ligula et ligula placerat pulvinar. Aliquam erat" - text run at (10,235) width 378: "volutpat. Proin id est. Suspendisse cursus, magna at hendrerit" - text run at (10,250) width 389: "consequat, mauris est imperdiet neque, a ultrices arcu urna non" - text run at (10,265) width 398: "nunc. Quisque tellus. Nulla nulla justo, vehicula nec, pellentesque" - text run at (10,280) width 386: "eu, iaculis et, ligula. Praesent mattis ante vel sem. Suspendisse" - text run at (10,295) width 372: "porta rhoncus urna. Phasellus felis. Praesent viverra convallis" - text run at (10,310) width 368: "libero. Maecenas non augue. Donec hendrerit lectus id enim." - RenderBR {BR} at (377,310) size 1x15 - RenderBR {BR} at (10,325) size 0x15 - RenderText {#text} at (10,340) size 397x105 - text run at (10,340) width 397: "Nulla ligula dui, euismod et, sodales quis, sollicitudin quis, elit. In" - text run at (10,355) width 368: "adipiscing est sed enim. Fusce at massa vitae metus semper" - text run at (10,370) width 365: "hendrerit. Integer vitae urna. Nulla eget ligula. Etiam libero." - text run at (10,385) width 371: "Maecenas nisi nibh, convallis a, feugiat vitae, pulvinar et, mi." - text run at (10,400) width 381: "Curabitur arcu pede, adipiscing sed, egestas nec, commodo in," - text run at (10,415) width 386: "elit. Nulla facilisi. Proin varius pede et dui lacinia dapibus. Morbi" - text run at (10,430) width 258: "nec augue. Proin imperdiet lacus eu tellus." -layer at (28,448) size 125x100 clip at (29,449) size 110x85 scrollWidth 420 scrollHeight 455 - RenderBlock {DIV} at (20,440) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x455 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." - RenderBR {BR} at (96,160) size 1x15 - RenderBR {BR} at (10,175) size 0x15 - RenderText {#text} at (10,190) size 398x135 - text run at (10,190) width 357: "Cras commodo rutrum augue. Vivamus iaculis. Nullam est." - text run at (10,205) width 387: "Maecenas consequat. Sed id dui. Vivamus a nisl. Donec pretium" - text run at (10,220) width 375: "sapien. Proin et ligula et ligula placerat pulvinar. Aliquam erat" - text run at (10,235) width 378: "volutpat. Proin id est. Suspendisse cursus, magna at hendrerit" - text run at (10,250) width 389: "consequat, mauris est imperdiet neque, a ultrices arcu urna non" - text run at (10,265) width 398: "nunc. Quisque tellus. Nulla nulla justo, vehicula nec, pellentesque" - text run at (10,280) width 386: "eu, iaculis et, ligula. Praesent mattis ante vel sem. Suspendisse" - text run at (10,295) width 372: "porta rhoncus urna. Phasellus felis. Praesent viverra convallis" - text run at (10,310) width 368: "libero. Maecenas non augue. Donec hendrerit lectus id enim." - RenderBR {BR} at (377,310) size 1x15 - RenderBR {BR} at (10,325) size 0x15 - RenderText {#text} at (10,340) size 397x105 - text run at (10,340) width 397: "Nulla ligula dui, euismod et, sodales quis, sollicitudin quis, elit. In" - text run at (10,355) width 368: "adipiscing est sed enim. Fusce at massa vitae metus semper" - text run at (10,370) width 365: "hendrerit. Integer vitae urna. Nulla eget ligula. Etiam libero." - text run at (10,385) width 371: "Maecenas nisi nibh, convallis a, feugiat vitae, pulvinar et, mi." - text run at (10,400) width 381: "Curabitur arcu pede, adipiscing sed, egestas nec, commodo in," - text run at (10,415) width 386: "elit. Nulla facilisi. Proin varius pede et dui lacinia dapibus. Morbi" - text run at (10,430) width 258: "nec augue. Proin imperdiet lacus eu tellus." -layer at (197,448) size 125x100 clip at (198,449) size 110x85 scrollWidth 420 scrollHeight 455 - RenderBlock {DIV} at (189,440) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x455 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." - RenderBR {BR} at (96,160) size 1x15 - RenderBR {BR} at (10,175) size 0x15 - RenderText {#text} at (10,190) size 398x135 - text run at (10,190) width 357: "Cras commodo rutrum augue. Vivamus iaculis. Nullam est." - text run at (10,205) width 387: "Maecenas consequat. Sed id dui. Vivamus a nisl. Donec pretium" - text run at (10,220) width 375: "sapien. Proin et ligula et ligula placerat pulvinar. Aliquam erat" - text run at (10,235) width 378: "volutpat. Proin id est. Suspendisse cursus, magna at hendrerit" - text run at (10,250) width 389: "consequat, mauris est imperdiet neque, a ultrices arcu urna non" - text run at (10,265) width 398: "nunc. Quisque tellus. Nulla nulla justo, vehicula nec, pellentesque" - text run at (10,280) width 386: "eu, iaculis et, ligula. Praesent mattis ante vel sem. Suspendisse" - text run at (10,295) width 372: "porta rhoncus urna. Phasellus felis. Praesent viverra convallis" - text run at (10,310) width 368: "libero. Maecenas non augue. Donec hendrerit lectus id enim." - RenderBR {BR} at (377,310) size 1x15 - RenderBR {BR} at (10,325) size 0x15 - RenderText {#text} at (10,340) size 397x105 - text run at (10,340) width 397: "Nulla ligula dui, euismod et, sodales quis, sollicitudin quis, elit. In" - text run at (10,355) width 368: "adipiscing est sed enim. Fusce at massa vitae metus semper" - text run at (10,370) width 365: "hendrerit. Integer vitae urna. Nulla eget ligula. Etiam libero." - text run at (10,385) width 371: "Maecenas nisi nibh, convallis a, feugiat vitae, pulvinar et, mi." - text run at (10,400) width 381: "Curabitur arcu pede, adipiscing sed, egestas nec, commodo in," - text run at (10,415) width 386: "elit. Nulla facilisi. Proin varius pede et dui lacinia dapibus. Morbi" - text run at (10,430) width 258: "nec augue. Proin imperdiet lacus eu tellus." -layer at (366,448) size 125x100 clip at (367,449) size 110x85 scrollWidth 420 scrollHeight 455 - RenderBlock {DIV} at (358,440) size 125x100 [color=#DCDCDC] [bgcolor=#718D93] [border: (1px solid #D3D3D3)] - RenderBlock {DIV} at (1,1) size 420x455 - RenderText {#text} at (10,10) size 398x165 - text run at (10,10) width 397: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi et" - text run at (10,25) width 364: "nisi ut est venenatis viverra. Aenean pede orci, blandit quis," - text run at (10,40) width 398: "faucibus quis, egestas ut, mi. Pellentesque enim purus, venenatis" - text run at (10,55) width 371: "dignissim, tincidunt a, ullamcorper eget, nibh. Nullam ut sem" - text run at (10,70) width 348: "adipiscing orci vehicula interdum. Proin a enim. Phasellus" - text run at (10,85) width 381: "sollicitudin, magna vitae vestibulum facilisis, tellus nunc iaculis" - text run at (10,100) width 380: "arcu, in molestie sem velit tempus est. In eleifend velit at sem" - text run at (10,115) width 350: "adipiscing sodales. Nunc sapien felis, aliquam et, volutpat" - text run at (10,130) width 382: "rhoncus, condimentum ut, tortor. Integer est. Quisque viverra." - text run at (10,145) width 312: "Praesent sed arcu. Maecenas id lorem a leo lobortis" - text run at (10,160) width 87: "condimentum." - RenderBR {BR} at (96,160) size 1x15 - RenderBR {BR} at (10,175) size 0x15 - RenderText {#text} at (10,190) size 398x135 - text run at (10,190) width 357: "Cras commodo rutrum augue. Vivamus iaculis. Nullam est." - text run at (10,205) width 387: "Maecenas consequat. Sed id dui. Vivamus a nisl. Donec pretium" - text run at (10,220) width 375: "sapien. Proin et ligula et ligula placerat pulvinar. Aliquam erat" - text run at (10,235) width 378: "volutpat. Proin id est. Suspendisse cursus, magna at hendrerit" - text run at (10,250) width 389: "consequat, mauris est imperdiet neque, a ultrices arcu urna non" - text run at (10,265) width 398: "nunc. Quisque tellus. Nulla nulla justo, vehicula nec, pellentesque" - text run at (10,280) width 386: "eu, iaculis et, ligula. Praesent mattis ante vel sem. Suspendisse" - text run at (10,295) width 372: "porta rhoncus urna. Phasellus felis. Praesent viverra convallis" - text run at (10,310) width 368: "libero. Maecenas non augue. Donec hendrerit lectus id enim." - RenderBR {BR} at (377,310) size 1x15 - RenderBR {BR} at (10,325) size 0x15 - RenderText {#text} at (10,340) size 397x105 - text run at (10,340) width 397: "Nulla ligula dui, euismod et, sodales quis, sollicitudin quis, elit. In" - text run at (10,355) width 368: "adipiscing est sed enim. Fusce at massa vitae metus semper" - text run at (10,370) width 365: "hendrerit. Integer vitae urna. Nulla eget ligula. Etiam libero." - text run at (10,385) width 371: "Maecenas nisi nibh, convallis a, feugiat vitae, pulvinar et, mi." - text run at (10,400) width 381: "Curabitur arcu pede, adipiscing sed, egestas nec, commodo in," - text run at (10,415) width 386: "elit. Nulla facilisi. Proin varius pede et dui lacinia dapibus. Morbi" - text run at (10,430) width 258: "nec augue. Proin imperdiet lacus eu tellus." diff --git a/LayoutTests/platform/mac-ventura/svg/custom/inline-svg-in-xhtml-expected.txt b/LayoutTests/platform/mac-ventura/svg/custom/inline-svg-in-xhtml-expected.txt deleted file mode 100644 index 806ac19bfc5ba..0000000000000 --- a/LayoutTests/platform/mac-ventura/svg/custom/inline-svg-in-xhtml-expected.txt +++ /dev/null @@ -1,34 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x0 - RenderBlock {html} at (0,0) size 800x0 -layer at (48,38) size 722x542 layerType: background only -layer at (49,39) size 720x540 - RenderSVGRoot {svg} at (49,39) size 720x540 - RenderSVGResourceLinearGradient {linearGradient} [id="gradient"] [gradientUnits=objectBoundingBox] [start=(0,0)] [end=(1,0)] - RenderSVGGradientStop {stop} [offset=0.00] [color=#FFFF00] - RenderSVGGradientStop {stop} [offset=1.00] [color=#008000] - RenderSVGRect {rect} at (49,39) size 720x540 [fill={[type=LINEAR-GRADIENT] [id="gradient"]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00] - RenderSVGEllipse {circle} at (193,93) size 432x432 [fill={[type=LINEAR-GRADIENT] [id="gradient"]}] [cx=50.00] [cy=50.00] [r=30.00] -layer at (48,38) size 722x542 layerType: foreground only - RenderBody {body} at (48,38) size 722x542 [border: (1px solid #000000)] - RenderBlock {form} at (1,1) size 720x122 - RenderFieldSet {fieldset} at (2,0) size 716x122 [border: (2px groove #C0C0C0)] - RenderBlock {legend} at (14,0) size 88x18 - RenderText {#text} at (2,0) size 84x18 - text run at (2,0) width 84: "HTML Form" - RenderBlock {p} at (14,39) size 688x20 - RenderInline {label} at (0,0) size 110x18 - RenderText {#text} at (0,0) size 110x18 - text run at (0,0) width 110: "Enter something:" - RenderText {#text} at (109,0) size 5x18 - text run at (109,0) width 5: " " - RenderTextControl {input} at (113,0) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {p} at (14,74) size 688x20 - RenderButton {button} at (0,1) size 63x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 47x13 - RenderText {#text} at (0,0) size 47x13 - text run at (0,0) width 47: "Activate!" -layer at (182,82) size 141x13 - RenderBlock {div} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/svg/custom/svg-fonts-in-html-expected.txt b/LayoutTests/platform/mac-ventura/svg/custom/svg-fonts-in-html-expected.txt deleted file mode 100644 index 432230f9342df..0000000000000 --- a/LayoutTests/platform/mac-ventura/svg/custom/svg-fonts-in-html-expected.txt +++ /dev/null @@ -1,89 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x518 - RenderBlock {HTML} at (0,0) size 800x518 [bgcolor=#FFFFFF] -layer at (173,32) size 454x454 - RenderBody {BODY} at (173,32) size 454x454 [color=#FFFFFF] [bgcolor=#DD6600] - RenderBlock {DIV} at (0,0) size 454x0 - RenderBlock {DIV} at (0,0) size 454x0 - RenderBlock {DIV} at (0,0) size 454x0 - RenderBlock {DIV} at (0,0) size 454x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderBlock {DIV} at (0,0) size 454x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderBlock {DIV} at (0,0) size 454x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderBlock {DIV} at (0,0) size 454x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderBlock {DIV} at (0,0) size 454x0 - RenderInline {SPAN} at (0,0) size 0x0 - RenderBlock {DIV} at (0,0) size 454x0 - RenderInline {SPAN} at (0,0) size 0x0 -layer at (173,47) size 454x190 - RenderBlock (positioned) {H1} at (0,15) size 454x191 [color=#DD9955] - RenderInline {SPAN} at (55,-1) size 343x192 - RenderText {#text} at (55,-1) size 343x192 - text run at (62,-1) width 165: "CSS" - text run at (198,-1) width 193: " ZEN" - text run at (55,94) width 343: "GARDEN" -layer at (173,119) size 454x21 - RenderBlock (positioned) {H2} at (0,87) size 454x22 [color=#EEFF00] - RenderInline {SPAN} at (152,1) size 149x19 - RenderText {#text} at (152,1) size 88x19 - text run at (152,1) width 88: "The Beauty of " - RenderInline {ACRONYM} at (239,1) size 22x19 - RenderText {#text} at (239,1) size 22x19 - text run at (239,1) width 22: "CSS" - RenderText {#text} at (260,1) size 41x19 - text run at (260,1) width 41: " Design" -layer at (173,351) size 454x135 - RenderBlock (positioned) {DIV} at (0,319) size 454x135 - RenderInline {P} at (11,0) size 431x28 - RenderInline {SPAN} at (11,0) size 431x28 - RenderText {#text} at (11,0) size 431x28 - text run at (11,0) width 431: "Littering a dark and dreary road lay the past relics of browser-" - text run at (11,14) width 199: "specific tags, incompatible " - RenderInline {ACRONYM} at (209,14) size 31x14 - RenderText {#text} at (209,14) size 31x14 - text run at (209,14) width 31: "DOM" - RenderText {#text} at (239,14) size 113x14 - text run at (239,14) width 113: "s, and broken " - RenderInline {ACRONYM} at (351,14) size 26x14 - RenderText {#text} at (351,14) size 26x14 - text run at (351,14) width 26: "CSS" - RenderText {#text} at (376,14) size 66x14 - text run at (376,14) width 66: " support." - RenderText {#text} at (0,0) size 0x0 - RenderInline {P} at (11,28) size 431x42 - RenderInline {SPAN} at (11,28) size 431x42 - RenderText {#text} at (11,28) size 431x42 - text run at (11,28) width 431: "Today, we must clear the mind of past practices. Web" - text run at (11,42) width 431: "enlightenment has been achieved thanks to the tireless efforts" - text run at (11,56) width 104: "of folk like the " - RenderInline {ACRONYM} at (114,56) size 31x14 - RenderText {#text} at (114,56) size 31x14 - text run at (114,56) width 31: "W3C" - RenderText {#text} at (144,56) size 10x14 - text run at (144,56) width 10: ", " - RenderInline {ACRONYM} at (153,56) size 39x14 - RenderText {#text} at (153,56) size 39x14 - text run at (153,56) width 39: "WaSP" - RenderText {#text} at (191,56) size 222x14 - text run at (191,56) width 222: " and the major browser creators." - RenderText {#text} at (412,56) size 6x14 - text run at (412,56) width 6: " " - RenderInline {P} at (11,56) size 431x70 - RenderInline {SPAN} at (11,56) size 431x70 - RenderText {#text} at (11,56) size 431x70 - text run at (417,56) width 25: "The" - text run at (11,70) width 431: "css Zen Garden invites you to relax and meditate on the" - text run at (11,84) width 431: "important lessons of the masters. Begin to see with clarity." - text run at (11,98) width 431: "Learn to use the (yet to be) time-honored techniques in new and" - text run at (11,112) width 316: "invigorating fashion. Become one with the web." - RenderText {#text} at (0,0) size 0x0 -layer at (321,235) size 306x80 - RenderBlock (positioned) {H3} at (148,-116) size 306x81 [color=#CCCC77] [bgcolor=#888811] [border: (3px solid #888811) none (3px solid #888811)] - RenderInline {SPAN} at (3,-2) size 276x83 - RenderText {#text} at (3,-2) size 276x83 - text run at (45,-2) width 231: "The Road to" - text run at (3,35) width 276: "Enlightenment" diff --git a/LayoutTests/platform/mac-ventura/svg/hixie/mixed/003-expected.txt b/LayoutTests/platform/mac-ventura/svg/hixie/mixed/003-expected.txt deleted file mode 100644 index 59730ebec8326..0000000000000 --- a/LayoutTests/platform/mac-ventura/svg/hixie/mixed/003-expected.txt +++ /dev/null @@ -1,19 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x297 - RenderBlock {html} at (0,0) size 800x297 - RenderBody {body} at (8,16) size 784x273 - RenderBlock {p} at (0,0) size 784x19 - RenderTextControl {input} at (0,0) size 357x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {p} at (0,35) size 784x18 - RenderText {#text} at (0,0) size 465x18 - text run at (0,0) width 465: "It should say \"PASSED\" above and there should be a green circle below." - RenderBlock (anonymous) at (0,69) size 784x204 - RenderSVGRoot {svg} at (8,85) size 100x100 - RenderSVGEllipse {circle} at (8,85) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=50.00] [cy=50.00] [r=50.00] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 -layer at (11,19) size 351x13 - RenderBlock {div} at (3,3) size 351x13 - RenderText {#text} at (0,0) size 117x13 - text run at (0,0) width 117: "This test has PASSED." diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug1188-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug1188-expected.txt deleted file mode 100644 index 364ad5484cd07..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug1188-expected.txt +++ /dev/null @@ -1,141 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {FORM} at (0,0) size 784x194 - RenderTable {TABLE} at (0,10) size 600x184 - RenderTableSection {TBODY} at (0,0) size 600x184 - RenderTableRow {TR} at (0,2) size 600x44 - RenderTableCell {TD} at (2,2) size 595x44 [r=0 c=0 rs=1 cs=3] - RenderImage {IMG} at (7,1) size 580x42 - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,48) size 600x55 - RenderTableCell {TD} at (2,57) size 595x37 [bgcolor=#99CCCC] [r=1 c=0 rs=1 cs=3] - RenderInline {FONT} at (54,12) size 128x16 - RenderInline {B} at (54,12) size 128x16 - RenderText {#text} at (54,12) size 128x16 - text run at (54,3) width 128: "Search the Web with" - RenderText {#text} at (181,10) size 5x19 - text run at (181,1) width 5: " " - RenderMenuList {SELECT} at (185,11) size 82x19 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 81x18 - RenderText at (8,2) size 50x13 - text run at (8,2) width 50: "Netscape" - RenderTextControl {INPUT} at (266,10) size 218x20 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (483,10) size 5x19 - text run at (483,1) width 5: " " - RenderButton {INPUT} at (487,11) size 53x19 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 37x13 - RenderText at (0,0) size 37x13 - text run at (0,0) width 37: "Search" - RenderBR {BR} at (539,10) size 1x19 - RenderInline {SMALL} at (13,29) size 568x16 - RenderInline {A} at (13,29) size 100x16 [color=#0000EE] - RenderText {#text} at (13,29) size 100x16 - text run at (13,20) width 100: "Classifieds< /A> " - RenderInline {A} at (112,29) size 60x16 [color=#0000EE] - RenderText {#text} at (112,29) size 60x16 - text run at (112,20) width 24: "Net " - text run at (135,20) width 37: "Search" - RenderText {#text} at (171,29) size 11x16 - text run at (171,20) width 11: " " - RenderInline {A} at (181,29) size 83x16 [color=#0000EE] - RenderText {#text} at (181,29) size 83x16 - text run at (181,20) width 57: "Find Web " - text run at (237,20) width 27: "Sites" - RenderText {#text} at (263,29) size 11x16 - text run at (263,20) width 4: " " - text run at (266,20) width 8: " " - RenderInline {A} at (273,29) size 66x16 [color=#0000EE] - RenderText {#text} at (273,29) size 66x16 - text run at (273,20) width 40: "What's " - text run at (312,20) width 27: "Cool" - RenderText {#text} at (338,29) size 11x16 - text run at (338,20) width 11: " " - RenderInline {A} at (348,29) size 66x16 [color=#0000EE] - RenderText {#text} at (348,29) size 66x16 - text run at (348,20) width 66: "What's New" - RenderText {#text} at (413,29) size 11x16 - text run at (413,20) width 11: " " - RenderInline {A} at (423,29) size 76x16 [color=#0000EE] - RenderText {#text} at (423,29) size 76x16 - text run at (423,20) width 76: "People Finder" - RenderText {#text} at (498,29) size 11x16 - text run at (498,20) width 11: " " - RenderInline {A} at (508,29) size 73x16 [color=#0000EE] - RenderText {#text} at (508,29) size 73x16 - text run at (508,20) width 73: "Yellow Pages" - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,105) size 600x50 - RenderTableCell {TD} at (2,114) size 160x32 [r=2 c=0 rs=1 cs=1] - RenderInline {A} at (21,8) size 118x33 [color=#0000EE] - RenderInline {FONT} at (21,10) size 118x30 [color=#CC0033] - RenderText {#text} at (21,10) size 118x30 - text run at (21,1) width 118: "Download Netscape" - text run at (26,16) width 107: "Communicator 4.5" - RenderTableCell {TD} at (163,105) size 272x50 [r=2 c=1 rs=1 cs=1] - RenderInline {A} at (19,22) size 233x28 [color=#0000EE] - RenderImage {IMG} at (19,1) size 233x35 [border: (1px solid #0000EE)] - RenderBR {BR} at (251,22) size 1x18 - RenderInline {FONT} at (111,36) size 48x13 - RenderText {#text} at (111,36) size 48x13 - text run at (111,36) width 48: "Click Here!" - RenderBR {BR} at (158,32) size 1x18 - RenderTableCell {TD} at (436,121) size 161x18 [r=2 c=2 rs=1 cs=1] - RenderInline {A} at (14,15) size 132x19 [color=#0000EE] - RenderInline {FONT} at (14,17) size 132x16 [color=#0066FF] - RenderText {#text} at (14,17) size 132x16 - text run at (14,1) width 132: "Hassle-Free Upgrades" - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,157) size 600x20 - RenderTableCell {TD} at (2,157) size 595x20 [r=3 c=0 rs=1 cs=3] - RenderInline {A} at (15,1) size 49x18 [color=#0000EE] - RenderInline {FONT} at (15,3) size 49x15 [color=#0066FF] - RenderInline {B} at (15,3) size 49x15 - RenderText {#text} at (15,3) size 49x15 - text run at (15,3) width 49: "Contact" - RenderText {#text} at (63,1) size 14x18 - text run at (63,1) width 14: " : " - RenderInline {SMALL} at (76,3) size 503x15 - RenderInline {A} at (76,3) size 77x15 [color=#0000EE] - RenderText {#text} at (76,3) size 77x15 - text run at (76,3) width 77: "Address Book" - RenderText {#text} at (152,3) size 12x15 - text run at (152,3) width 12: " - " - RenderInline {A} at (163,3) size 65x15 [color=#0000EE] - RenderText {#text} at (163,3) size 65x15 - text run at (163,3) width 65: "Discussions" - RenderText {#text} at (227,3) size 12x15 - text run at (227,3) width 12: " - " - RenderInline {A} at (238,3) size 98x15 [color=#0000EE] - RenderText {#text} at (238,3) size 98x15 - text run at (238,3) width 98: "Instant Messenger" - RenderText {#text} at (335,3) size 12x15 - text run at (335,3) width 12: " - " - RenderInline {A} at (346,3) size 79x15 [color=#0000EE] - RenderText {#text} at (346,3) size 79x15 - text run at (346,3) width 79: "Long Distance" - RenderText {#text} at (424,3) size 12x15 - text run at (424,3) width 12: " - " - RenderInline {A} at (435,3) size 52x15 [color=#0000EE] - RenderText {#text} at (435,3) size 52x15 - text run at (435,3) width 52: "Members" - RenderText {#text} at (486,3) size 12x15 - text run at (486,3) width 12: " - " - RenderInline {A} at (497,3) size 82x15 [color=#0000EE] - RenderText {#text} at (497,3) size 82x15 - text run at (497,3) width 82: "WebMail< /A>" - RenderInline {A} at (578,1) size 0x18 [color=#0000EE] - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,179) size 600x3 - RenderTableCell {TD} at (2,179) size 597x3 [bgcolor=#99CCCC] [r=4 c=0 rs=1 cs=4] - RenderTable {TABLE} at (1,1) size 0x1 - RenderTableSection {TBODY} at (0,0) size 0x1 - RenderTableRow {TR} at (0,0) size 0x1 - RenderTableCell {TD} at (0,0) size 0x0 [r=0 c=0 rs=1 cs=1] -layer at (8,8) size 602x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,0) size 602x2 [color=#808080] [border: (1px inset #808080)] -layer at (279,80) size 211x13 - RenderBlock {DIV} at (3,3) size 211x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug12384-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug12384-expected.txt deleted file mode 100644 index a69bcfa7d8aec..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug12384-expected.txt +++ /dev/null @@ -1,26 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {FORM} at (0,0) size 784x23 - RenderTable {TABLE} at (0,0) size 682x23 [bgcolor=#FFE030] [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 680x21 - RenderTableRow {TR} at (0,0) size 680x21 - RenderTableCell {TD} at (0,0) size 680x21 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderInline {NOBR} at (1,1) size 678x18 - RenderTextControl {INPUT} at (1,1) size 217x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (217,1) size 15x18 - text run at (217,1) width 15: " - " - RenderTextControl {INPUT} at (231,1) size 217x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (447,1) size 15x18 - text run at (447,1) width 15: " - " - RenderTextControl {INPUT} at (461,1) size 218x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,21) size 680x0 -layer at (13,13) size 211x13 - RenderBlock {DIV} at (3,3) size 211x13 -layer at (243,13) size 211x13 - RenderBlock {DIV} at (3,3) size 211x13 -layer at (473,13) size 211x13 - RenderBlock {DIV} at (3,3) size 211x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug18359-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug18359-expected.txt deleted file mode 100644 index 7840731258c46..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug18359-expected.txt +++ /dev/null @@ -1,45 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {H2} at (0,0) size 784x28 - RenderText {#text} at (0,0) size 362x28 - text run at (0,0) width 362: "SeaMonkey XPInstall Trigger Page" - RenderBlock {FORM} at (0,57) size 784x48 - RenderTable {TABLE} at (0,0) size 661x47 - RenderTableSection {TBODY} at (0,0) size 661x47 - RenderTableRow {TR} at (0,2) size 661x21 - RenderTableCell {TD} at (2,2) size 106x21 [r=0 c=0 rs=1 cs=1] - RenderInline {B} at (1,1) size 95x19 - RenderText {#text} at (1,1) size 95x19 - text run at (1,1) width 95: "Trigger URL:" - RenderTableCell {TD} at (109,2) size 464x21 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 462x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderTableCell {TD} at (574,2) size 85x21 [r=0 c=2 rs=1 cs=1] - RenderButton {INPUT} at (1,1) size 54x19 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 38x13 - RenderText at (0,0) size 38x13 - text run at (0,0) width 38: "Trigger" - RenderTableRow {TR} at (0,25) size 661x20 - RenderTableCell {TD} at (2,25) size 106x20 [r=1 c=0 rs=1 cs=1] - RenderInline {B} at (1,1) size 104x18 - RenderText {#text} at (1,1) size 104x18 - text run at (1,1) width 104: "Run Test Case:" - RenderTableCell {TD} at (109,25) size 464x20 [r=1 c=1 rs=1 cs=1] - RenderMenuList {SELECT} at (1,1) size 259x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 259x18 - RenderText at (8,2) size 72x13 - text run at (8,2) width 72: "a_abortinstall" - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (574,25) size 85x20 [r=1 c=2 rs=1 cs=1] - RenderButton {INPUT} at (1,1) size 82x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 66x13 - RenderText at (0,0) size 66x13 - text run at (0,0) width 66: "Trigger case" -layer at (8,56) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,47) size 784x3 [color=#808080] [border: (1px inset #808080)] -layer at (121,72) size 456x13 - RenderBlock {DIV} at (3,3) size 456x13 - RenderText {#text} at (0,0) size 93x13 - text run at (0,0) width 93: "http://jimbob/jars/" diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug24200-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug24200-expected.txt deleted file mode 100644 index df8525a70a970..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug24200-expected.txt +++ /dev/null @@ -1,63 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {CENTER} at (0,0) size 784x200 - RenderTable {TABLE} at (76,0) size 632x200 [border: (1px solid #FF0000)] - RenderTableSection {TBODY} at (1,1) size 628x197 - RenderTableRow {TR} at (0,0) size 628x22 - RenderTableCell {TD} at (0,0) size 628x22 [border: (2px solid #FF0000)] [r=0 c=0 rs=1 cs=2] - RenderText {#text} at (3,3) size 180x18 - text run at (3,3) width 180: "parent table, 1st row, 1st col" - RenderTableRow {TR} at (0,22) size 628x175 - RenderTableCell {TD} at (0,22) size 143x175 [border: (1px solid #FF0000)] [r=1 c=0 rs=1 cs=1] - RenderBlock {FORM} at (3,2) size 139x155 - RenderTable {TABLE} at (0,0) size 139x155 [border: (1px solid #00FF00)] - RenderTableSection {TBODY} at (1,1) size 136x152 - RenderTableRow {TR} at (0,0) size 136x22 - RenderTableCell {TD} at (0,0) size 136x22 [border: (2px solid #00FF00)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (3,3) size 24x18 - text run at (3,3) width 24: "text" - RenderTableRow {TR} at (0,22) size 136x37 - RenderTableCell {TD} at (0,22) size 136x37 [border: (1px solid #00FF00)] [r=1 c=0 rs=1 cs=1] - RenderTable {TABLE} at (3,2) size 131x34 [border: (1px solid #FFFF00)] - RenderTableSection {TBODY} at (1,1) size 128x31 - RenderTableRow {TR} at (0,0) size 128x31 - RenderTableCell {TD} at (0,3) size 102x25 [border: (2px solid #FFFF00)] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (3,6) size 84x20 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (101,0) size 28x31 [border: (2px solid #FFFF00)] [r=0 c=1 rs=1 cs=1] - RenderImage {INPUT} at (3,7) size 20x18 - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,59) size 136x21 - RenderTableCell {TD} at (0,59) size 136x21 [border: (1px solid #00FF00)] [r=2 c=0 rs=1 cs=1] - RenderText {#text} at (3,2) size 24x18 - text run at (3,2) width 24: "text" - RenderTableRow {TR} at (0,80) size 136x50 - RenderTableCell {TD} at (0,80) size 136x50 [border: (1px solid #00FF00)] [r=3 c=0 rs=1 cs=1] - RenderBlock (anonymous) at (3,2) size 131x0 - RenderInline {FONT} at (0,0) size 0x0 - RenderTable {TABLE} at (3,2) size 131x47 [border: (1px solid #FF00FF)] - RenderTableSection {TBODY} at (1,1) size 128x44 - RenderTableRow {TR} at (0,0) size 128x22 - RenderTableCell {TD} at (0,0) size 128x22 [border: (2px solid #FF00FF)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (3,3) size 54x18 - text run at (3,3) width 54: "problem" - RenderTableRow {TR} at (0,22) size 128x22 - RenderTableCell {TD} at (0,22) size 128x22 [border: (1px solid #FF00FF)] [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (3,2) size 54x18 - text run at (3,2) width 54: "problem" - RenderTableRow {TR} at (0,130) size 136x22 - RenderTableCell {TD} at (0,130) size 136x22 [border: (1px solid #00FF00)] [r=4 c=0 rs=1 cs=1] - RenderText {#text} at (3,2) size 24x18 - text run at (3,2) width 24: "text" - RenderTableCell {TD} at (143,22) size 485x30 [border: (1px solid #FF0000)] [r=1 c=1 rs=1 cs=1] - RenderTable {TABLE} at (2,2) size 481x26 [border: (1px solid #0000FF)] - RenderTableSection {TBODY} at (1,1) size 478x23 - RenderTableRow {TR} at (0,0) size 478x23 - RenderTableCell {TD} at (0,0) size 478x23 [border: (2px solid #0000FF)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (3,3) size 48x18 - text run at (3,3) width 48: "overlap" -layer at (100,69) size 78x13 backgroundClip at (100,69) size 77x13 clip at (100,69) size 77x13 - RenderBlock {DIV} at (3,3) size 78x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-2-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-2-expected.txt deleted file mode 100644 index 8cfdf2687a329..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-2-expected.txt +++ /dev/null @@ -1,120 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x553 - RenderBlock {HTML} at (0,0) size 800x553 [bgcolor=#00FF99] - RenderBody {BODY} at (57,64) size 686x425 [bgcolor=#99FFCC] [border: (3px solid #000000)] - RenderBlock {P} at (3,3) size 680x64 - RenderText {#text} at (0,6) size 632x51 - text run at (0,6) width 593: "These links are in an element with display table-row, and the li elements " - text run at (592,6) width 40: "have" - text run at (0,38) width 155: "display: table-cell. " - text run at (154,38) width 131: "They disappear:" - RenderTable at (3,67) size 302x19 - RenderTableSection (anonymous) at (0,0) size 302x19 - RenderTableRow {UL} at (0,0) size 302x19 [bgcolor=#00CC99] - RenderTableCell {LI} at (0,0) size 76x19 [r=0 c=0 rs=1 cs=1] - RenderInline {A} at (11,0) size 54x19 [color=#0000EE] - RenderText {#text} at (11,0) size 54x19 - text run at (11,0) width 54: "people" - RenderTableCell {LI} at (75,0) size 76x19 [r=0 c=1 rs=1 cs=1] - RenderInline {A} at (12,0) size 51x19 [color=#0000EE] - RenderText {#text} at (12,0) size 51x19 - text run at (12,0) width 51: "places" - RenderTableCell {LI} at (150,0) size 76x19 [r=0 c=2 rs=1 cs=1] - RenderInline {A} at (0,0) size 76x19 [color=#0000EE] - RenderText {#text} at (0,0) size 76x19 - text run at (0,0) width 76: "members" - RenderTableCell {LI} at (225,0) size 77x19 [r=0 c=3 rs=1 cs=1] - RenderInline {A} at (19,0) size 38x19 [color=#0000EE] - RenderText {#text} at (19,0) size 38x19 - text run at (19,0) width 38: "links" - RenderBlock {DIV} at (3,86) size 680x336 - RenderBlock (anonymous) at (16,16) size 648x19 - RenderText {#text} at (0,0) size 510x19 - text run at (0,0) width 227: "This text is not in the form. " - text run at (226,0) width 284: "The form should be indented 40px." - RenderBlock {FORM} at (96,35) size 568x285 - RenderBlock {P} at (0,0) size 568x64 - RenderText {#text} at (0,6) size 541x51 - text run at (0,6) width 195: "This is text in the form. " - text run at (194,6) width 230: "It should be indented 40px. " - text run at (423,6) width 118: "The form itself" - text run at (0,38) width 373: "has the same table-row/table-cell problem as " - text run at (372,38) width 55: "above." - RenderBlock {P} at (0,64) size 568x63 - RenderTable {SPAN} at (0,3) size 137x60 - RenderTableSection (anonymous) at (0,0) size 137x60 - RenderTableRow {SPAN} at (0,0) size 137x28 - RenderTableCell (anonymous) at (0,0) size 137x28 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,6) size 137x16 - text run at (0,6) width 137: "First Name (required)" - RenderTableRow (anonymous) at (0,28) size 137x32 - RenderTableCell (anonymous) at (0,28) size 137x32 [r=1 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (0,8) size 119x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (136,6) size 7x19 - text run at (136,6) width 7: " " - RenderTable {SPAN} at (142,3) size 137x60 - RenderTableSection (anonymous) at (0,0) size 137x60 - RenderTableRow {SPAN} at (0,0) size 137x28 - RenderTableCell (anonymous) at (0,0) size 137x28 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,6) size 137x16 - text run at (0,6) width 137: "Last Name (required)" - RenderTableRow (anonymous) at (0,28) size 137x32 - RenderTableCell (anonymous) at (0,28) size 137x32 [r=1 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (0,8) size 119x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,127) size 568x63 - RenderTable {SPAN} at (0,3) size 287x60 - RenderTableSection (anonymous) at (0,0) size 287x60 - RenderTableRow {SPAN} at (0,0) size 287x28 - RenderTableCell (anonymous) at (0,0) size 287x28 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,6) size 93x16 - text run at (0,6) width 93: "Email Address" - RenderTableRow (anonymous) at (0,28) size 287x32 - RenderTableCell (anonymous) at (0,28) size 287x32 [r=1 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (0,8) size 287x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,190) size 568x63 - RenderTable {SPAN} at (0,3) size 119x60 - RenderTableSection (anonymous) at (0,0) size 119x60 - RenderTableRow {SPAN} at (0,0) size 119x28 - RenderTableCell (anonymous) at (0,0) size 119x28 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,6) size 105x16 - text run at (0,6) width 105: "Company Name" - RenderTableRow (anonymous) at (0,28) size 119x32 - RenderTableCell (anonymous) at (0,28) size 119x32 [r=1 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (0,8) size 119x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (118,6) size 7x19 - text run at (118,6) width 7: " " - RenderTable {SPAN} at (124,3) size 120x60 - RenderTableSection (anonymous) at (0,0) size 119x60 - RenderTableRow {SPAN} at (0,0) size 119x28 - RenderTableCell (anonymous) at (0,0) size 119x28 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,6) size 27x16 - text run at (0,6) width 27: "Title" - RenderTableRow (anonymous) at (0,28) size 119x32 - RenderTableCell (anonymous) at (0,28) size 119x32 [r=1 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (0,8) size 119x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,253) size 568x32 - RenderButton {INPUT} at (0,9) size 57x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 41x13 - RenderText at (0,0) size 41x13 - text run at (0,0) width 41: "Submit!" - RenderText {#text} at (56,6) size 6x19 - text run at (56,6) width 6: " " - RenderButton {INPUT} at (61,9) size 75x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 58x13 - RenderText at (0,0) size 58x13 - text run at (0,0) width 58: "Clear Form" - RenderText {#text} at (0,0) size 0x0 -layer at (159,291) size 113x13 - RenderBlock {DIV} at (3,3) size 113x13 -layer at (301,291) size 113x13 - RenderBlock {DIV} at (3,3) size 113x13 -layer at (159,354) size 281x13 - RenderBlock {DIV} at (3,3) size 281x13 -layer at (159,417) size 113x13 - RenderBlock {DIV} at (3,3) size 113x13 -layer at (284,417) size 113x13 backgroundClip at (284,417) size 112x13 clip at (284,417) size 112x13 - RenderBlock {DIV} at (3,3) size 113x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-3-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-3-expected.txt deleted file mode 100644 index 3bca266fcf2b4..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-3-expected.txt +++ /dev/null @@ -1,128 +0,0 @@ -layer at (0,0) size 785x765 - RenderView at (0,0) size 785x600 -layer at (0,0) size 785x765 - RenderBlock {HTML} at (0,0) size 785x765 - RenderBody {BODY} at (8,21) size 769x728 - RenderBlock {H1} at (0,0) size 769x32 - RenderText {#text} at (0,0) size 757x32 - text run at (0,0) width 757: "Generic Table Tests - 1" - RenderBlock {P} at (0,53) size 769x33 - RenderText {#text} at (0,0) size 752x32 - text run at (0,0) width 752: "If you have any comments to make regarding this" - text run at (0,16) width 208: "test, e-mail " - RenderInline {A} at (208,16) size 432x16 [color=#0000EE] - RenderText {#text} at (208,16) size 432x16 - text run at (208,16) width 432: "py8ieh=eviltests@bath.ac.uk" - RenderText {#text} at (640,16) size 16x16 - text run at (640,16) width 16: "." - RenderBlock {DL} at (0,101) size 769x65 - RenderBlock {DT} at (0,0) size 769x16 - RenderText {#text} at (0,0) size 208x16 - text run at (0,0) width 208: "Prerequisites" - RenderBlock {DD} at (40,16) size 729x48 - RenderText {#text} at (0,0) size 720x48 - text run at (0,0) width 640: "Browsers that are subjected to this test" - text run at (0,16) width 720: "should support CSS1 and the CSS2 table model," - text run at (0,32) width 336: "and multiple classes." - RenderBlock {P} at (0,181) size 769x126 [border: (5px double #FF0000)] - RenderBlock (anonymous) at (13,13) size 743x16 - RenderText {#text} at (0,0) size 624x16 - text run at (0,0) width 624: "If this paragraph breaks the line here:" - RenderTable {SPAN} at (13,29) size 144x16 - RenderTableSection (anonymous) at (0,0) size 144x16 - RenderTableRow (anonymous) at (0,0) size 144x16 - RenderTableCell (anonymous) at (0,0) size 144x16 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 144x16 - text run at (0,0) width 144: "and here:" - RenderBlock (anonymous) at (13,45) size 743x67 - RenderText {#text} at (0,0) size 288x16 - text run at (0,0) width 288: "then your browser " - RenderInline {EM} at (288,0) size 192x16 - RenderText {#text} at (288,0) size 192x16 - text run at (288,0) width 192: "does support" - RenderText {#text} at (0,0) size 736x34 - text run at (480,0) width 256: " table values on" - text run at (0,18) width 164: "'display'. " - RenderInline {STRONG} at (0,18) size 708x49 - RenderText {#text} at (0,18) size 708x49 - text run at (163,18) width 527: "If this paragraphs flows without" - text run at (0,35) width 708: "any undue breaks, then you should mark your" - text run at (0,51) width 642: "browser as not supporting table values!" - RenderBlock {H2} at (0,326) size 769x25 - RenderText {#text} at (0,0) size 543x24 - text run at (0,0) width 543: "1. Table -> Table Cell" - RenderBlock {P} at (0,370) size 769x65 - RenderText {#text} at (0,0) size 736x64 - text run at (0,0) width 736: "Below there should be a gray bar, spanning the" - text run at (0,16) width 736: "width of the BODY, with the text \"Left\" to the" - text run at (0,32) width 704: "left and the text \"Right\", on the same line," - text run at (0,48) width 304: "flush to the right." - RenderTable {DIV} at (0,450) size 769x17 [bgcolor=#C0C0C0] - RenderTableSection (anonymous) at (0,0) size 769x16 - RenderTableRow (anonymous) at (0,0) size 769x16 - RenderTableCell {DIV} at (0,0) size 342x16 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 64x16 - text run at (0,0) width 64: "Left" - RenderTableCell {DIV} at (341,0) size 429x16 [r=0 c=1 rs=1 cs=1] - RenderText {#text} at (347,0) size 81x16 - text run at (347,0) width 81: "Right" - RenderBlock {H2} at (0,486) size 769x25 - RenderText {#text} at (0,0) size 346x24 - text run at (0,0) width 346: "Submit Results" - RenderBlock {FORM} at (0,530) size 769x36 - RenderBlock {P} at (0,0) size 769x35 - RenderText {#text} at (0,0) size 640x16 - text run at (0,0) width 640: "How does your browser fare on this test?" - RenderMenuList {SELECT} at (0,17) size 241x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 241x18 - RenderText at (8,2) size 139x13 - text run at (8,2) width 139: "The test renders correctly." - RenderText {#text} at (241,17) size 16x16 - text run at (241,17) width 16: " " - RenderInline {LABEL} at (257,17) size 291x16 - RenderText {#text} at (257,17) size 144x16 - text run at (257,17) width 144: "Comment: " - RenderTextControl {INPUT} at (401,16) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (547,17) size 17x16 - text run at (547,17) width 17: " " - RenderButton {INPUT} at (563,17) size 54x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 37x13 - RenderText at (0,0) size 37x13 - text run at (0,0) width 37: "Submit" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,599) size 769x17 - RenderText {#text} at (0,0) size 160x16 - text run at (0,0) width 160: "Up to the " - RenderInline {A} at (160,0) size 176x16 [color=#0000EE] - RenderText {#text} at (160,0) size 176x16 - text run at (160,0) width 176: "Table Tests" - RenderText {#text} at (336,0) size 16x16 - text run at (336,0) width 16: "." - RenderBlock {P} at (0,631) size 769x17 - RenderText {#text} at (0,0) size 160x16 - text run at (0,0) width 160: "Up to the " - RenderInline {A} at (160,0) size 240x16 [color=#0000EE] - RenderText {#text} at (160,0) size 240x16 - text run at (160,0) width 240: "Evil Tests Page" - RenderText {#text} at (400,0) size 16x16 - text run at (400,0) width 16: "." - RenderBlock {P} at (0,663) size 769x33 - RenderText {#text} at (0,0) size 432x16 - text run at (0,0) width 432: "This page is maintained by " - RenderInline {A} at (432,0) size 176x16 [color=#0000EE] - RenderText {#text} at (432,0) size 176x16 - text run at (432,0) width 176: "Ian Hickson" - RenderText {#text} at (0,16) size 16x16 - text run at (0,16) width 16: "(" - RenderInline {A} at (16,16) size 272x16 [color=#0000EE] - RenderText {#text} at (16,16) size 272x16 - text run at (16,16) width 272: "py8ieh@bath.ac.uk" - RenderText {#text} at (288,16) size 32x16 - text run at (288,16) width 32: ")." - RenderBlock {P} at (0,711) size 769x17 - RenderText {#text} at (0,0) size 432x16 - text run at (0,0) width 432: "Last updated in March 1999." -layer at (412,571) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (8,603) size 769x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,581) size 769x3 [color=#808080] [border: (1px inset #808080)] diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-4-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-4-expected.txt deleted file mode 100644 index 58858751ccb5b..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug2479-4-expected.txt +++ /dev/null @@ -1,244 +0,0 @@ -layer at (0,0) size 785x2582 - RenderView at (0,0) size 785x600 -layer at (0,0) size 785x2582 - RenderBlock {HTML} at (0,0) size 785x2583 - RenderBody {BODY} at (8,21) size 769x2546 [bgcolor=#FFFFFF] - RenderBlock {H1} at (0,0) size 769x37 - RenderText {#text} at (0,0) size 361x37 - text run at (0,0) width 361: "Table Inheritance Tests - 1" - RenderBlock {P} at (0,58) size 769x19 - RenderText {#text} at (0,0) size 397x18 - text run at (0,0) width 397: "If you have any comments to make regarding this test, e-mail " - RenderInline {A} at (396,0) size 186x18 [color=#0000EE] - RenderText {#text} at (396,0) size 186x18 - text run at (396,0) width 186: "py8ieh=eviltests@bath.ac.uk" - RenderText {#text} at (581,0) size 5x18 - text run at (581,0) width 5: "." - RenderBlock {DL} at (0,92) size 769x37 - RenderBlock {DT} at (0,0) size 769x18 - RenderText {#text} at (0,0) size 83x18 - text run at (0,0) width 83: "Prerequisites" - RenderBlock {DD} at (40,18) size 729x18 - RenderText {#text} at (0,0) size 560x18 - text run at (0,0) width 560: "Browsers that are subjected to this test should support CSS1 and the CSS2 table model." - RenderBlock {H2} at (0,148) size 769x29 - RenderText {#text} at (0,0) size 104x28 - text run at (0,0) width 104: "0. Control" - RenderBlock {P} at (0,196) size 769x19 - RenderText {#text} at (0,0) size 411x18 - text run at (0,0) width 411: "The following four tests should look identical, namely, like this:" - RenderBlock {DIV} at (0,230) size 769x75 [color=#FFFFFF] [bgcolor=#000000] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {P} at (0,320) size 769x73 - RenderText {#text} at (0,0) size 768x72 - text run at (0,0) width 756: "There are some minor exceptions, however. The x.1 tests should fill the viewport width, the other tests need not. Also," - text run at (0,18) width 766: "browsers attempting to have backwards compatability with the buggy behaviour of legacy browsers may omit to inherit" - text run at (0,36) width 768: "the color and font-size in 1.1, which will make 1.1 (but only 1.1) unreadable. That is the problem with not following the" - text run at (0,54) width 39: "specs." - RenderBlock {H2} at (0,412) size 769x29 - RenderText {#text} at (0,0) size 168x28 - text run at (0,0) width 168: "1. HTML Tables" - RenderBlock {H3} at (0,460) size 769x23 - RenderText {#text} at (0,0) size 243x22 - text run at (0,0) width 243: "1.1 Inheritance through a DIV" - RenderBlock {DIV} at (0,500) size 769x81 [color=#FFFFFF] [bgcolor=#000000] - RenderTable {TABLE} at (0,0) size 769x80 - RenderTableSection {TBODY} at (0,0) size 769x80 - RenderTableRow {TR} at (0,2) size 769x76 - RenderTableCell {TD} at (2,2) size 765x76 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 761x74 - text run at (1,1) width 761: "This text should be white on black, bold, twice the" - text run at (1,38) width 523: "size of normal text, and sans serif." - RenderBlock {H3} at (0,599) size 769x23 - RenderText {#text} at (0,0) size 259x22 - text run at (0,0) width 259: "1.2 Styles set directly on TABLE" - RenderTable {TABLE} at (0,640) size 769x81 [color=#FFFFFF] [bgcolor=#000000] - RenderTableSection {TBODY} at (0,0) size 769x80 - RenderTableRow {TR} at (0,2) size 769x76 - RenderTableCell {TD} at (2,2) size 765x76 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 761x74 - text run at (1,1) width 761: "This text should be white on black, bold, twice the" - text run at (1,38) width 523: "size of normal text, and sans serif." - RenderBlock {H2} at (0,740) size 769x29 - RenderText {#text} at (0,0) size 226x28 - text run at (0,0) width 226: "2. Explicit CSS Tables" - RenderBlock {H3} at (0,788) size 769x23 - RenderText {#text} at (0,0) size 243x22 - text run at (0,0) width 243: "2.1 Inheritance through a DIV" - RenderBlock {DIV} at (0,828) size 769x75 [color=#FFFFFF] [bgcolor=#000000] - RenderTable {DIV} at (0,0) size 769x74 - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow {DIV} at (0,0) size 769x74 - RenderTableCell {DIV} at (0,0) size 769x74 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H3} at (0,921) size 769x23 - RenderText {#text} at (0,0) size 259x22 - text run at (0,0) width 259: "2.2 Styles set directly on TABLE" - RenderTable {DIV} at (0,962) size 769x75 [color=#FFFFFF] [bgcolor=#000000] - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow {DIV} at (0,0) size 769x74 - RenderTableCell {DIV} at (0,0) size 769x74 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H3} at (0,1054) size 769x23 - RenderText {#text} at (0,0) size 244x22 - text run at (0,0) width 244: "2.3 Styles set directly on ROW" - RenderTable {DIV} at (0,1095) size 769x75 - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow {DIV} at (0,0) size 769x74 [color=#FFFFFF] [bgcolor=#000000] - RenderTableCell {DIV} at (0,0) size 769x74 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H3} at (0,1188) size 769x23 - RenderText {#text} at (0,0) size 248x22 - text run at (0,0) width 248: "2.4 Styles set directly on CELL" - RenderTable {DIV} at (0,1229) size 769x75 - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow {DIV} at (0,0) size 769x74 - RenderTableCell {DIV} at (0,0) size 769x74 [color=#FFFFFF] [bgcolor=#000000] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H2} at (0,1322) size 769x29 - RenderText {#text} at (0,0) size 381x28 - text run at (0,0) width 381: "3. Implicit CSS Tables (table explicit)" - RenderBlock {H3} at (0,1370) size 769x23 - RenderText {#text} at (0,0) size 243x22 - text run at (0,0) width 243: "3.1 Inheritance through a DIV" - RenderBlock {DIV} at (0,1411) size 769x75 [color=#FFFFFF] [bgcolor=#000000] - RenderTable {DIV} at (0,0) size 769x74 - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow (anonymous) at (0,0) size 769x74 - RenderTableCell (anonymous) at (0,0) size 769x74 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H3} at (0,1504) size 769x23 - RenderText {#text} at (0,0) size 259x22 - text run at (0,0) width 259: "3.2 Styles set directly on TABLE" - RenderTable {DIV} at (0,1545) size 769x75 [color=#FFFFFF] [bgcolor=#000000] - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow (anonymous) at (0,0) size 769x74 - RenderTableCell (anonymous) at (0,0) size 769x74 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H2} at (0,1638) size 769x29 - RenderText {#text} at (0,0) size 370x28 - text run at (0,0) width 370: "4. Implicit CSS Tables (row explicit)" - RenderBlock {H3} at (0,1686) size 769x23 - RenderText {#text} at (0,0) size 243x22 - text run at (0,0) width 243: "4.1 Inheritance through a DIV" - RenderBlock {DIV} at (0,1727) size 769x75 [color=#FFFFFF] [bgcolor=#000000] - RenderTable at (0,0) size 769x74 - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow {DIV} at (0,0) size 769x74 - RenderTableCell (anonymous) at (0,0) size 769x74 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H3} at (0,1820) size 769x23 - RenderText {#text} at (0,0) size 244x22 - text run at (0,0) width 244: "4.2 Styles set directly on ROW" - RenderTable at (0,1861) size 769x74 - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow {DIV} at (0,0) size 769x74 [color=#FFFFFF] [bgcolor=#000000] - RenderTableCell (anonymous) at (0,0) size 769x74 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H2} at (0,1954) size 769x29 - RenderText {#text} at (0,0) size 365x28 - text run at (0,0) width 365: "5. Implicit CSS Tables (cell explicit)" - RenderBlock {H3} at (0,2002) size 769x23 - RenderText {#text} at (0,0) size 243x22 - text run at (0,0) width 243: "5.1 Inheritance through a DIV" - RenderBlock {DIV} at (0,2043) size 769x75 [color=#FFFFFF] [bgcolor=#000000] - RenderTable at (0,0) size 769x74 - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow (anonymous) at (0,0) size 769x74 - RenderTableCell {DIV} at (0,0) size 769x74 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H3} at (0,2136) size 769x23 - RenderText {#text} at (0,0) size 248x22 - text run at (0,0) width 248: "5.2 Styles set directly on CELL" - RenderTable at (0,2176) size 769x75 - RenderTableSection (anonymous) at (0,0) size 769x74 - RenderTableRow (anonymous) at (0,0) size 769x74 - RenderTableCell {DIV} at (0,0) size 769x74 [color=#FFFFFF] [bgcolor=#000000] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (0,0) size 761x74 - text run at (0,0) width 761: "This text should be white on black, bold, twice the" - text run at (0,37) width 523: "size of normal text, and sans serif." - RenderBlock {H2} at (0,2270) size 769x29 - RenderText {#text} at (0,0) size 156x28 - text run at (0,0) width 156: "Submit Results" - RenderBlock {FORM} at (0,2318) size 769x39 - RenderBlock {P} at (0,0) size 769x38 - RenderText {#text} at (0,0) size 267x18 - text run at (0,0) width 267: "How does your browser fare on this test? " - RenderMenuList {SELECT} at (266,1) size 464x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 463x18 - RenderText at (8,2) size 432x13 - text run at (8,2) width 432: "The tests all render identically, and this browser may or may not grok CSS2 tables." - RenderText {#text} at (0,0) size 0x0 - RenderInline {LABEL} at (0,19) size 219x18 - RenderText {#text} at (0,19) size 72x18 - text run at (0,19) width 72: "Comment: " - RenderTextControl {INPUT} at (71,19) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (218,19) size 5x18 - text run at (218,19) width 5: " " - RenderButton {INPUT} at (222,20) size 54x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 37x13 - RenderText at (0,0) size 37x13 - text run at (0,0) width 37: "Submit" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (0,2390) size 769x19 - RenderText {#text} at (0,0) size 64x18 - text run at (0,0) width 64: "Up to the " - RenderInline {A} at (63,0) size 73x18 [color=#0000EE] - RenderText {#text} at (63,0) size 73x18 - text run at (63,0) width 73: "Table Tests" - RenderText {#text} at (135,0) size 5x18 - text run at (135,0) width 5: "." - RenderBlock {P} at (0,2424) size 769x19 - RenderText {#text} at (0,0) size 64x18 - text run at (0,0) width 64: "Up to the " - RenderInline {A} at (63,0) size 99x18 [color=#0000EE] - RenderText {#text} at (63,0) size 99x18 - text run at (63,0) width 99: "Evil Tests Page" - RenderText {#text} at (161,0) size 5x18 - text run at (161,0) width 5: "." - RenderBlock {P} at (0,2458) size 769x19 - RenderText {#text} at (0,0) size 63x18 - text run at (0,0) width 63: "Bugzilla: " - RenderInline {A} at (62,0) size 64x18 [color=#0000EE] - RenderText {#text} at (62,0) size 64x18 - text run at (62,0) width 64: "Bug 1044" - RenderBlock {P} at (0,2492) size 769x19 - RenderText {#text} at (0,0) size 177x18 - text run at (0,0) width 177: "This page is maintained by " - RenderInline {A} at (176,0) size 79x18 [color=#0000EE] - RenderText {#text} at (176,0) size 79x18 - text run at (176,0) width 79: "Ian Hickson" - RenderText {#text} at (254,0) size 10x18 - text run at (254,0) width 10: " (" - RenderInline {A} at (263,0) size 125x18 [color=#0000EE] - RenderText {#text} at (263,0) size 125x18 - text run at (263,0) width 125: "py8ieh@bath.ac.uk" - RenderText {#text} at (387,0) size 10x18 - text run at (387,0) width 10: ")." - RenderBlock {P} at (0,2526) size 769x19 - RenderText {#text} at (0,0) size 185x18 - text run at (0,0) width 185: "Last updated in March 1999." -layer at (83,2362) size 141x13 backgroundClip at (83,2362) size 140x13 clip at (83,2362) size 140x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (8,2394) size 769x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,2372) size 769x3 [color=#808080] [border: (1px inset #808080)] diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug28928-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug28928-expected.txt deleted file mode 100644 index 79de8094e5383..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug28928-expected.txt +++ /dev/null @@ -1,51 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {H3} at (0,0) size 784x22 - RenderText {#text} at (0,0) size 194x22 - text run at (0,0) width 194: "With long hidden values" - RenderTable {TABLE} at (0,40) size 198x64 [border: (1px solid #FF0000)] - RenderTableSection {TBODY} at (1,1) size 196x61 - RenderTableRow {TR} at (0,2) size 196x55 - RenderTableCell {TD} at (2,2) size 192x55 [r=0 c=0 rs=1 cs=1] - RenderBlock {FORM} at (1,1) size 190x37 - RenderTextControl {INPUT} at (0,0) size 98x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (97,0) size 5x18 - text run at (97,0) width 5: " " - RenderButton {INPUT} at (101,1) size 39x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 22x13 - RenderText at (0,0) size 22x13 - text run at (0,0) width 22: " Go " - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (139,0) size 1x18 - RenderText {#text} at (0,19) size 190x18 - text run at (0,19) width 190: "Enter City Name or Zip Code" - RenderTableRow {TR} at (0,59) size 196x0 - RenderBlock {H3} at (0,132) size 784x23 - RenderText {#text} at (0,0) size 201x22 - text run at (0,0) width 201: "With short hidden values" - RenderTable {TABLE} at (0,173) size 198x64 [border: (1px solid #FF0000)] - RenderTableSection {TBODY} at (1,1) size 196x61 - RenderTableRow {TR} at (0,2) size 196x55 - RenderTableCell {TD} at (2,2) size 192x55 [r=0 c=0 rs=1 cs=1] - RenderBlock {FORM} at (1,1) size 190x37 - RenderTextControl {INPUT} at (0,0) size 98x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (97,0) size 5x18 - text run at (97,0) width 5: " " - RenderButton {INPUT} at (101,1) size 39x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 22x13 - RenderText at (0,0) size 22x13 - text run at (0,0) width 22: " Go " - RenderText {#text} at (0,0) size 0x0 - RenderBR {BR} at (139,0) size 1x18 - RenderText {#text} at (0,19) size 190x18 - text run at (0,19) width 190: "Enter City Name or Zip Code" - RenderTableRow {TR} at (0,59) size 196x0 -layer at (15,56) size 92x13 - RenderBlock {DIV} at (3,3) size 92x13 -layer at (8,120) size 784x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (0,111) size 784x3 [color=#808080] [border: (1px inset #808080)] -layer at (15,188) size 92x13 - RenderBlock {DIV} at (3,3) size 92x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug4382-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug4382-expected.txt deleted file mode 100644 index ce271bd970e1d..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug4382-expected.txt +++ /dev/null @@ -1,35 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x18 - RenderText {#text} at (0,0) size 266x18 - text run at (0,0) width 266: "The select should not contain blank items" - RenderBR {BR} at (265,0) size 1x18 - RenderBlock {FORM} at (0,18) size 784x19 - RenderInline {B} at (0,0) size 47x18 - RenderText {#text} at (0,0) size 47x18 - text run at (0,0) width 47: "Search" - RenderText {#text} at (46,0) size 5x18 - text run at (46,0) width 5: " " - RenderTextControl {INPUT} at (50,0) size 134x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (183,0) size 5x18 - text run at (183,0) width 5: " " - RenderMenuList {SELECT} at (187,1) size 77x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 76x18 - RenderText at (8,2) size 32x13 - text run at (8,2) width 32: "Excite" - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,53) size 784x36 - RenderBR {BR} at (0,0) size 0x18 - RenderText {#text} at (0,18) size 266x18 - text run at (0,18) width 266: "The select should not contain blank items" - RenderBR {BR} at (265,18) size 1x18 - RenderBlock {FORM} at (0,89) size 784x18 - RenderMenuList {SELECT} at (0,0) size 221x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 221x18 - RenderText at (8,2) size 55x13 - text run at (8,2) width 55: "Quick Link" -layer at (62,29) size 127x13 - RenderBlock {DIV} at (3,3) size 127x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug4527-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug4527-expected.txt deleted file mode 100644 index cab0006a61614..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug4527-expected.txt +++ /dev/null @@ -1,44 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 [bgcolor=#000066] - RenderTable {TABLE} at (0,0) size 613x95 - RenderTableSection {TBODY} at (0,0) size 613x95 - RenderTableRow {TR} at (0,0) size 613x70 - RenderTableCell {TD} at (0,5) size 126x85 [r=0 c=0 rs=2 cs=1] - RenderInline {A} at (0,76) size 126x18 [color=#0000EE] - RenderImage {IMG} at (0,5) size 126x85 - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (126,0) size 488x70 [r=0 c=1 rs=1 cs=3] - RenderInline {NOBR} at (468,46) size 19x18 - RenderIFrame {IFRAME} at (0,0) size 468x60 - layer at (0,0) size 468x60 - RenderView at (0,0) size 468x60 - layer at (0,0) size 468x60 - RenderBlock {HTML} at (0,0) size 468x60 - RenderBody {BODY} at (0,0) size 468x60 - RenderInline {A} at (0,46) size 468x18 [color=#0000EE] - RenderText {#text} at (0,0) size 0x0 - RenderImage {IMG} at (0,0) size 468x60 - RenderText {#text} at (0,0) size 0x0 - RenderInline {A} at (468,46) size 19x18 [color=#0000EE] - RenderImage {IMG} at (468,0) size 19x60 - RenderBR {BR} at (487,46) size 0x18 - RenderImage {IMG} at (0,60) size 470x10 - RenderBR {BR} at (470,56) size 0x18 - RenderTableRow {TR} at (0,70) size 613x25 - RenderTableCell {TD} at (126,70) size 248x25 [bgcolor=#CCCCCC] [r=1 c=1 rs=1 cs=1] - RenderImage {IMG} at (0,0) size 232x25 - RenderTableCell {TD} at (373,72) size 110x21 [bgcolor=#CCCCCC] [r=1 c=2 rs=1 cs=1] - RenderTextControl {INPUT} at (3,2) size 78x20 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderImage {INPUT} at (80,4) size 26x19 - RenderTableCell {TD} at (482,70) size 132x25 [bgcolor=#CCCCCC] [r=1 c=3 rs=1 cs=1] - RenderBlock {INPUT} at (2,6) size 12x13 - RenderImage {IMG} at (16,0) size 40x25 - RenderBlock {INPUT} at (58,6) size 12x13 - RenderText {#text} at (72,2) size 4x19 - text run at (72,2) width 4: " " - RenderImage {IMG} at (76,0) size 46x25 -layer at (388,84) size 71x13 - RenderBlock {DIV} at (3,3) size 71x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug46368-1-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug46368-1-expected.txt deleted file mode 100644 index a113156f1e425..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug46368-1-expected.txt +++ /dev/null @@ -1,53 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTable {TABLE} at (0,0) size 784x111 [bgcolor=#00FFFF] [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 782x109 - RenderTableRow {TR} at (0,2) size 782x105 - RenderTableCell {TD} at (2,2) size 454x105 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderTable {TABLE} at (2,2) size 450x101 [bgcolor=#FF00FF] [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 448x99 - RenderTableRow {TR} at (0,2) size 448x95 - RenderTableCell {TD} at (2,2) size 444x95 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 203x18 - text run at (2,2) width 203: "Mozilla To Be Dually-Licensed" - RenderBR {BR} at (204,2) size 1x18 - RenderText {#text} at (2,35) size 208x18 - text run at (2,35) width 208: "Plans are underway to make the " - RenderInline {FONT} at (209,20) size 101x37 [color=#0000FF] - RenderText {#text} at (209,20) size 101x37 - text run at (209,20) width 101: "Mozilla" - RenderText {#text} at (2,35) size 404x58 - text run at (309,35) width 97: " code available" - text run at (2,57) width 52: "under a " - text run at (53,57) width 156: "dual MPL/GPL license. " - text run at (208,57) width 181: "See the for more info. We're" - text run at (2,75) width 326: "gathering contributor input now, in the newsgroup." - RenderBR {BR} at (327,75) size 1x18 - RenderTableCell {TD} at (457,25) size 324x59 [border: (1px inset #000000)] [r=0 c=1 rs=1 cs=1] - RenderText {#text} at (2,25) size 293x55 - text run at (2,2) width 273: "This status update contains information on" - text run at (2,20) width 231: "MailNews, XML/DOM, XPToolkit," - text run at (2,38) width 293: "Architecture, Bidi, Necko/Imglib, and more..." - RenderBlock (anonymous) at (0,111) size 784x37 - RenderBR {BR} at (0,0) size 0x18 - RenderButton {INPUT} at (0,19) size 52x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 36x13 - RenderText at (0,0) size 36x13 - text run at (0,0) width 36: "Reload" - RenderText {#text} at (51,18) size 9x18 - text run at (51,18) width 9: " " - RenderButton {INPUT} at (59,19) size 84x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 67x13 - RenderText at (0,0) size 67x13 - text run at (0,0) width 67: "Change Font" - RenderText {#text} at (142,18) size 9x18 - text run at (142,18) width 9: " " - RenderTextControl {INPUT} at (150,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (162,140) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 8x13 - text run at (0,0) width 8: "6" diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug46368-2-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug46368-2-expected.txt deleted file mode 100644 index 1b85b6065e251..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug46368-2-expected.txt +++ /dev/null @@ -1,41 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTable {TABLE} at (0,0) size 784x65 [bgcolor=#00FFFF] [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 782x63 - RenderTableRow {TR} at (0,2) size 782x59 - RenderTableCell {TD} at (2,2) size 304x59 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderInline {FONT} at (2,2) size 100x37 [color=#0000FF] - RenderText {#text} at (2,2) size 100x37 - text run at (2,2) width 100: "Mozilla" - RenderText {#text} at (2,17) size 279x40 - text run at (101,17) width 153: " code available under a " - text run at (253,17) width 28: "dual" - text run at (2,39) width 124: "MPL/GPL license. " - text run at (125,39) width 141: "See the for more info." - RenderBR {BR} at (265,39) size 1x18 - RenderTableCell {TD} at (308,20) size 472x23 [border: (1px inset #000000)] [r=0 c=1 rs=1 cs=1] - RenderText {#text} at (2,20) size 245x19 - text run at (2,2) width 245: "foo bar foo bar foo bar foo bar foo bar" - RenderBlock (anonymous) at (0,65) size 784x37 - RenderBR {BR} at (0,0) size 0x18 - RenderButton {INPUT} at (0,19) size 52x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 36x13 - RenderText at (0,0) size 36x13 - text run at (0,0) width 36: "Reload" - RenderText {#text} at (51,18) size 9x18 - text run at (51,18) width 9: " " - RenderButton {INPUT} at (59,19) size 84x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 67x13 - RenderText at (0,0) size 67x13 - text run at (0,0) width 67: "Change Font" - RenderText {#text} at (142,18) size 9x18 - text run at (142,18) width 9: " " - RenderTextControl {INPUT} at (150,18) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (162,94) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 8x13 - text run at (0,0) width 8: "6" diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug51037-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug51037-expected.txt deleted file mode 100644 index af3f70d54634c..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug51037-expected.txt +++ /dev/null @@ -1,40 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock (anonymous) at (0,0) size 784x18 - RenderText {#text} at (0,0) size 245x18 - text run at (0,0) width 245: "The tables left position should be 250." - RenderBlock {P} at (0,34) size 784x19 - RenderText {#text} at (0,0) size 36x18 - text run at (0,0) width 36: "Left: " - RenderTextControl {INPUT} at (35,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,69) size 784x19 - RenderText {#text} at (0,0) size 34x18 - text run at (0,0) width 34: "Top: " - RenderTextControl {INPUT} at (33,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderBlock {P} at (0,104) size 784x18 - RenderButton {INPUT} at (0,0) size 45x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 29x13 - RenderText at (0,0) size 29x13 - text run at (0,0) width 29: "Move" -layer at (46,45) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 32x13 - text run at (0,0) width 32: "120px" -layer at (44,80) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 32x13 - text run at (0,0) width 32: "120px" -layer at (250,120) size 29x48 - RenderTable {TABLE} at (250,120) size 30x48 [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 28x46 - RenderTableRow {TR} at (0,2) size 28x20 - RenderTableCell {TD} at (2,2) size 24x20 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 22x18 - text run at (1,1) width 22: "foo" - RenderTableRow {TR} at (0,24) size 28x20 - RenderTableCell {TD} at (2,24) size 24x20 [border: (1px inset #000000)] [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 21x18 - text run at (1,1) width 21: "bar" diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug55545-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug55545-expected.txt deleted file mode 100644 index c5467eadfd1bf..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug55545-expected.txt +++ /dev/null @@ -1,20 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTable {TABLE} at (0,0) size 362x31 - RenderTableSection {TBODY} at (0,0) size 362x31 - RenderTableRow {TR} at (0,2) size 362x27 - RenderTableCell {TD} at (2,2) size 358x27 [r=0 c=0 rs=1 cs=1] - RenderTable {TABLE} at (1,1) size 356x25 - RenderTableSection {TBODY} at (0,0) size 356x25 - RenderTableRow {TR} at (0,2) size 356x21 - RenderTableCell {TH} at (2,2) size 61x21 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 59x19 - text run at (1,1) width 59: "User ID:" - RenderTableCell {TD} at (64,2) size 290x21 [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (1,1) size 287x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (80,17) size 281x13 - RenderBlock {DIV} at (3,3) size 281x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug59354-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug59354-expected.txt deleted file mode 100644 index 1f63885688610..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug59354-expected.txt +++ /dev/null @@ -1,60 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderTable {TABLE} at (0,0) size 468x142 [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 466x140 - RenderTableRow {TR} at (0,0) size 466x140 - RenderTableCell {TD} at (0,0) size 466x140 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderTable {TABLE} at (1,1) size 464x138 [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 462x136 - RenderTableRow {TR} at (0,1) size 462x28 - RenderTableCell {TD} at (1,1) size 140x28 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (5,5) size 130x18 - text run at (5,5) width 130: "General Preferences" - RenderTableCell {TD} at (141,1) size 148x28 [border: (1px inset #000000)] [r=0 c=1 rs=1 cs=1] - RenderInline {A} at (5,5) size 137x18 [color=#0000EE] - RenderText {#text} at (5,5) size 137x18 - text run at (5,5) width 137: "Groups / Permissions" - RenderTableCell {TD} at (289,1) size 72x28 [border: (1px inset #000000)] [r=0 c=2 rs=1 cs=1] - RenderInline {A} at (5,5) size 62x18 [color=#0000EE] - RenderText {#text} at (5,5) size 62x18 - text run at (5,5) width 62: "Password" - RenderTableCell {TD} at (361,1) size 49x28 [border: (1px inset #000000)] [r=0 c=3 rs=1 cs=1] - RenderInline {A} at (5,5) size 39x18 [color=#0000EE] - RenderText {#text} at (5,5) size 39x18 - text run at (5,5) width 39: "Email" - RenderTableCell {TD} at (410,1) size 51x28 [border: (1px inset #000000)] [r=0 c=4 rs=1 cs=1] - RenderText {#text} at (5,5) size 40x18 - text run at (5,5) width 40: "Views" - RenderTableRow {TR} at (0,30) size 462x105 - RenderTableCell {TD} at (1,30) size 460x105 [border: (1px inset #000000)] [r=1 c=0 rs=1 cs=5] - RenderBlock (anonymous) at (5,5) size 450x18 - RenderBR {BR} at (224,0) size 1x18 - RenderTable {TABLE} at (83,23) size 293x77 - RenderTableSection {TBODY} at (0,0) size 292x77 - RenderTableRow {TR} at (0,2) size 292x73 - RenderTableCell {TD} at (2,2) size 288x73 [r=0 c=0 rs=1 cs=1] - RenderBlock {FORM} at (1,1) size 286x55 - RenderTable {TABLE} at (0,0) size 286x55 [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 284x53 - RenderTableRow {TR} at (0,0) size 284x53 - RenderTableCell {TD} at (0,0) size 284x53 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderBlock (anonymous) at (1,1) size 282x18 - RenderText {#text} at (86,0) size 110x18 - text run at (86,0) width 110: "User Preferences" - RenderTable {TABLE} at (1,19) size 282x33 [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 280x31 - RenderTableRow {TR} at (0,1) size 280x29 - RenderTableCell {TH} at (1,1) size 120x29 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderInline {NOBR} at (5,5) size 110x19 - RenderText {#text} at (5,5) size 110x19 - text run at (5,5) width 110: "Email Address :" - RenderTableCell {TD} at (121,1) size 158x29 [border: (1px inset #000000)] [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (5,5) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 -layer at (232,97) size 141x13 scrollWidth 191 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 190x13 - text run at (0,0) width 190: "simon.king@pipinghotnetworks.com" diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug7342-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug7342-expected.txt deleted file mode 100644 index 48d81df1c9934..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug7342-expected.txt +++ /dev/null @@ -1,80 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 [bgcolor=#FFFFFF] - RenderBlock {P} at (0,0) size 784x36 - RenderText {#text} at (0,0) size 775x36 - text run at (0,0) width 441: "Click on a link on the left hand column. Also note the overlap of the " - text run at (440,0) width 335: "text box with the submit button. (And, removing the" - text run at (0,18) width 156: "font tag that is wrapped " - text run at (155,18) width 239: "around the text box clears up layout)." - RenderBlock (anonymous) at (0,52) size 784x18 - RenderBR {BR} at (0,0) size 0x18 - RenderBlock {FORM} at (0,70) size 784x136 - RenderBlock {CENTER} at (0,0) size 784x136 - RenderTable {TABLE} at (92,0) size 600x136 [bgcolor=#EEEEEE] [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 598x134 - RenderTableRow {TR} at (0,3) size 598x128 - RenderTableCell {TD} at (3,3) size 124x128 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderTable {TABLE} at (4,4) size 116x120 [bgcolor=#FFFFFF] [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 114x118 - RenderTableRow {TR} at (0,2) size 114x28 - RenderTableCell {TD} at (2,3) size 110x25 [bgcolor=#CCCCCC] [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderInline {A} at (3,4) size 62x19 [color=#660099] - RenderInline {B} at (3,4) size 62x19 - RenderText {#text} at (3,4) size 62x19 - text run at (3,3) width 62: "Netscape" - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,31) size 114x28 - RenderTableCell {TD} at (2,33) size 110x25 [bgcolor=#FFFFFF] [border: (1px inset #000000)] [r=1 c=0 rs=1 cs=1] - RenderInline {A} at (3,4) size 58x19 [color=#660099] - RenderInline {B} at (3,4) size 58x19 - RenderText {#text} at (3,4) size 58x19 - text run at (3,3) width 58: "Infoseek" - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,61) size 114x28 - RenderTableCell {TD} at (2,62) size 110x25 [bgcolor=#FFFFFF] [border: (1px inset #000000)] [r=2 c=0 rs=1 cs=1] - RenderInline {A} at (3,4) size 79x19 [color=#660099] - RenderInline {B} at (3,4) size 79x19 - RenderText {#text} at (3,4) size 79x19 - text run at (3,3) width 79: "LookSmart" - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,90) size 114x26 - RenderTableCell {TD} at (2,91) size 110x25 [bgcolor=#FFFFFF] [border: (1px inset #000000)] [r=3 c=0 rs=1 cs=1] - RenderInline {A} at (3,3) size 66x19 [color=#660099] - RenderInline {B} at (3,3) size 66x19 - RenderText {#text} at (3,3) size 66x19 - text run at (3,3) width 66: "Directory" - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (129,27) size 467x80 [bgcolor=#CCCCCC] [border: (1px inset #000000)] [r=0 c=1 rs=1 cs=1] - RenderTable {TABLE} at (4,28) size 458x72 [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 456x69 - RenderTableRow {TR} at (0,4) size 456x29 - RenderTableCell {TD} at (4,4) size 349x29 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=3] - RenderInline {FONT} at (5,7) size 294x15 - RenderText {#text} at (0,0) size 0x0 - RenderTextControl {INPUT} at (5,5) size 294x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (356,4) size 96x28 [border: (1px inset #000000)] [r=0 c=3 rs=1 cs=1] - RenderButton {INPUT} at (5,5) size 53x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 37x13 - RenderText at (0,0) size 37x13 - text run at (0,0) width 37: "Search" - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,37) size 456x28 - RenderTableCell {TD} at (4,37) size 114x28 [border: (1px inset #000000)] [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (5,5) size 27x18 - text run at (5,5) width 27: "asdf" - RenderTableCell {TD} at (121,37) size 114x28 [border: (1px inset #000000)] [r=1 c=1 rs=1 cs=1] - RenderText {#text} at (5,5) size 27x18 - text run at (5,5) width 27: "asdf" - RenderTableCell {TD} at (238,37) size 115x28 [border: (1px inset #000000)] [r=1 c=2 rs=1 cs=1] - RenderText {#text} at (5,5) size 27x18 - text run at (5,5) width 27: "asdf" - RenderTableCell {TD} at (356,37) size 96x28 [border: (1px inset #000000)] [r=1 c=3 rs=1 cs=1] - RenderText {#text} at (5,5) size 27x18 - text run at (5,5) width 27: "asdf" -layer at (247,124) size 288x13 - RenderBlock {DIV} at (3,3) size 288x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug96334-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug96334-expected.txt deleted file mode 100644 index 3d8e45f7922e6..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug96334-expected.txt +++ /dev/null @@ -1,45 +0,0 @@ -layer at (0,0) size 985x585 - RenderView at (0,0) size 800x585 -layer at (0,0) size 800x585 - RenderBlock {HTML} at (0,0) size 800x585 - RenderBody {BODY} at (8,8) size 784x569 - RenderTable {TABLE} at (0,0) size 977x139 [border: (2px solid #0000FF)] - RenderTableSection {TBODY} at (2,2) size 973x135 - RenderTableRow {TR} at (0,2) size 973x131 - RenderTableCell {TD} at (2,2) size 211x131 [border: (1px solid #C0C0C0)] [r=0 c=0 rs=1 cs=1] - RenderTable {TABLE} at (2,2) size 207x127 [border: (2px solid #008000)] - RenderTableSection {TBODY} at (2,2) size 203x123 - RenderTableRow {TR} at (0,2) size 203x83 - RenderTableCell {TD} at (2,2) size 199x83 [border: (1px solid #C0C0C0)] [r=0 c=0 rs=1 cs=1] - RenderTable {TABLE} at (2,2) size 159x31 [border: (2px solid #FF0000)] - RenderTableSection {TBODY} at (2,2) size 155x27 - RenderTableRow {TR} at (0,2) size 155x23 - RenderTableCell {TD} at (2,2) size 151x23 [border: (1px solid #C0C0C0)] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (2,2) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderTable {TABLE} at (2,33) size 195x48 [border: (2px solid #FF0000)] - RenderTableSection {TBODY} at (2,2) size 191x44 - RenderTableRow {TR} at (0,2) size 191x40 - RenderTableCell {TD} at (2,2) size 187x40 [border: (1px solid #C0C0C0)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 171x36 - text run at (2,2) width 171: "THIS TABLE NEEDS TO" - text run at (2,20) width 67: "BE HERE" - RenderTableRow {TR} at (0,87) size 203x34 - RenderTableCell {TD} at (2,87) size 199x34 [border: (1px solid #C0C0C0)] [r=1 c=0 rs=1 cs=1] - RenderTable {TABLE} at (2,2) size 195x30 [border: (2px solid #FF0000)] - RenderTableSection {TBODY} at (2,2) size 191x26 - RenderTableRow {TR} at (0,2) size 191x22 - RenderTableCell {TD} at (2,2) size 187x22 [border: (1px solid #C0C0C0)] [r=0 c=0 rs=1 cs=1] - RenderMenuList {SELECT} at (2,2) size 183x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 183x18 - RenderText at (8,2) size 152x13 - text run at (8,2) width 152: "USE THIS JAVASCRIPT HERE" - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (215,2) size 756x40 [border: (1px solid #C0C0C0)] [r=0 c=1 rs=1 cs=1] - RenderText {#text} at (2,2) size 752x36 - text run at (2,2) width 752: "KEEPoTHEoTEXToHEREoASoLONGoASoPOSSIBLEooKEEPoTHEoTEXToHEREoASoLONGoASoPOSSIBLE" - text run at (2,20) width 602: "THIS SIMULATES THE PROBLEM ON THE WWW.MAPBLAST.COM/ \"CREATE MAP\"" -layer at (29,29) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 - RenderText {#text} at (0,0) size 132x13 - text run at (0,0) width 132: "THIS NEEDS THIS VALUE" diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug99948-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug99948-expected.txt deleted file mode 100644 index cb69de7c36144..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/bugs/bug99948-expected.txt +++ /dev/null @@ -1,16 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 784x18 - RenderText {#text} at (0,0) size 470x18 - text run at (0,0) width 470: "the purple text input control must be in the same line with the grey image" - RenderTable {TABLE} at (0,18) size 287x44 - RenderTableSection {TBODY} at (0,0) size 287x44 - RenderTableRow {TR} at (0,2) size 287x40 - RenderTableCell {TD} at (2,2) size 283x40 [bgcolor=#CCDDFF] [border: (1px solid #000000)] [r=0 c=0 rs=1 cs=1] - RenderTextControl {INPUT} at (3,18) size 147x19 [bgcolor=#CCAAFF] [border: (2px inset #808080)] - RenderImage {IMG} at (152,4) size 127x26 [bgcolor=#C0C0C0] [border: (1px solid #000000)] -layer at (16,49) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/dom/tableDom-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/dom/tableDom-expected.txt deleted file mode 100644 index 2d3b6d4ec51c4..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/dom/tableDom-expected.txt +++ /dev/null @@ -1,69 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock {FORM} at (0,0) size 784x19 - RenderMenuList {SELECT} at (0,1) size 93x18 [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 93x18 - RenderText at (8,2) size 61x13 - text run at (8,2) width 61: "append cell" - RenderText {#text} at (93,0) size 53x18 - text run at (93,0) width 53: " tbody " - RenderTextControl {INPUT} at (145,0) size 43x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (187,0) size 42x18 - text run at (187,0) width 42: " row " - RenderTextControl {INPUT} at (228,0) size 43x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (270,0) size 36x18 - text run at (270,0) width 36: " col " - RenderTextControl {INPUT} at (305,0) size 43x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (347,0) size 75x18 - text run at (347,0) width 75: " row span " - RenderTextControl {INPUT} at (421,0) size 43x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (463,0) size 70x18 - text run at (463,0) width 70: " col span " - RenderTextControl {INPUT} at (532,0) size 43x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (574,0) size 21x18 - text run at (574,0) width 21: " " - RenderButton {INPUT} at (594,1) size 42x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 25x13 - RenderText at (0,0) size 25x13 - text run at (0,0) width 25: "Do It" - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,35) size 784x18 - RenderBR {BR} at (0,0) size 0x18 - RenderTable {TABLE} at (0,53) size 63x52 [bgcolor=#FFA500] [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 61x50 - RenderTableRow {TR} at (0,2) size 61x22 - RenderTableCell {TD} at (2,2) size 28x22 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 23x18 - text run at (2,2) width 23: "c11" - RenderTableRow {TR} at (0,26) size 61x22 - RenderTableCell {TD} at (2,26) size 28x22 [border: (1px inset #000000)] [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 24x18 - text run at (2,2) width 24: "c21" - RenderTableCell {TD} at (31,26) size 28x22 [border: (1px inset #000000)] [r=1 c=1 rs=1 cs=1] - RenderText {#text} at (2,2) size 24x18 - text run at (2,2) width 24: "c22" - RenderBlock (anonymous) at (0,105) size 784x18 - RenderBR {BR} at (0,0) size 0x18 -layer at (156,11) size 36x13 - RenderBlock {DIV} at (3,3) size 36x13 - RenderText {#text} at (0,0) size 7x13 - text run at (0,0) width 7: "0" -layer at (239,11) size 36x13 - RenderBlock {DIV} at (3,3) size 36x13 - RenderText {#text} at (0,0) size 7x13 - text run at (0,0) width 7: "0" -layer at (317,11) size 36x13 - RenderBlock {DIV} at (3,3) size 36x13 - RenderText {#text} at (0,0) size 7x13 - text run at (0,0) width 7: "0" -layer at (433,11) size 36x13 - RenderBlock {DIV} at (3,3) size 36x13 - RenderText {#text} at (0,0) size 6x13 - text run at (0,0) width 6: "1" -layer at (544,11) size 36x13 - RenderBlock {DIV} at (3,3) size 36x13 - RenderText {#text} at (0,0) size 6x13 - text run at (0,0) width 6: "1" diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla/other/move_row-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla/other/move_row-expected.txt deleted file mode 100644 index 8d53f8617970d..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla/other/move_row-expected.txt +++ /dev/null @@ -1,51 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 [bgcolor=#FFFFFF] - RenderTable {TABLE} at (0,0) size 49x134 - RenderTableSection {TBODY} at (0,0) size 49x134 - RenderTableRow {TR} at (0,2) size 49x20 - RenderTableCell {TD} at (2,2) size 45x20 [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 43x18 - text run at (1,1) width 43: "Row 0" - RenderTableRow {TR} at (0,24) size 49x20 - RenderTableCell {TD} at (2,24) size 45x20 [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 43x18 - text run at (1,1) width 43: "Row 1" - RenderTableRow {TR} at (0,46) size 49x20 - RenderTableCell {TD} at (2,46) size 45x20 [r=2 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 43x18 - text run at (1,1) width 43: "Row 2" - RenderTableRow {TR} at (0,68) size 49x20 - RenderTableCell {TD} at (2,68) size 45x20 [r=3 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 43x18 - text run at (1,1) width 43: "Row 3" - RenderTableRow {TR} at (0,90) size 49x20 - RenderTableCell {TD} at (2,90) size 45x20 [r=4 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 43x18 - text run at (1,1) width 43: "Row 4" - RenderTableRow {TR} at (0,112) size 49x20 - RenderTableCell {TD} at (2,112) size 45x20 [r=5 c=0 rs=1 cs=1] - RenderText {#text} at (1,1) size 43x18 - text run at (1,1) width 43: "Row 5" - RenderBlock (anonymous) at (0,134) size 784x19 - RenderTextControl {INPUT} at (0,0) size 14x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (14,0) size 4x18 - text run at (14,0) width 4: " " - RenderTextControl {INPUT} at (18,0) size 14x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (32,0) size 4x18 - text run at (32,0) width 4: " " - RenderButton {INPUT} at (36,1) size 30x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 14x13 - RenderText at (0,0) size 14x13 - text run at (0,0) width 14: "go" - RenderText {#text} at (0,0) size 0x0 -layer at (11,145) size 8x13 - RenderBlock {DIV} at (3,3) size 8x13 - RenderText {#text} at (0,0) size 7x13 - text run at (0,0) width 7: "2" -layer at (29,145) size 8x13 - RenderBlock {DIV} at (3,3) size 8x13 - RenderText {#text} at (0,0) size 8x13 - text run at (0,0) width 8: "4" diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt deleted file mode 100644 index b211037fca03b..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt +++ /dev/null @@ -1,182 +0,0 @@ -layer at (0,0) size 785x1395 - RenderView at (0,0) size 785x600 -layer at (8,8) size 769x1387 - RenderBlock {HTML} at (8,8) size 769x1387 [bgcolor=#008000] [border: (16px solid #00FF00)] - RenderTable at (16,16) size 737x1355 - RenderTableSection (anonymous) at (0,0) size 737x1355 - RenderTableRow (anonymous) at (0,0) size 737x1355 - RenderTableCell {HEAD} at (0,0) size 246x472 [color=#FFFFFF] [bgcolor=#FF0000] [border: (5px solid #FFFFFF)] [r=0 c=0 rs=1 cs=1] - RenderBlock {META} at (21,37) size 204x2 [border: (1px dotted #FFFFFF)] - RenderBlock {META} at (21,55) size 204x2 [border: (1px dotted #FFFFFF)] - RenderBlock {META} at (21,73) size 204x2 [border: (1px dotted #FFFFFF)] - RenderBlock {META} at (21,91) size 204x2 [border: (1px dotted #FFFFFF)] - RenderBlock {TITLE} at (21,109) size 204x56 [border: (1px dotted #FFFFFF)] - RenderText {#text} at (1,1) size 188x54 - text run at (1,1) width 188: "Evil Tests: Rendering BODY" - text run at (1,19) width 163: "and HEAD as children of" - text run at (1,37) width 67: "HTML - 2" - RenderBlock {STYLE} at (21,181) size 204x254 [border: (1px dotted #FFFFFF)] - RenderText {#text} at (1,1) size 196x252 - text run at (1,1) width 83: "/* Layout */ " - text run at (83,1) width 112: "HTML { display:" - text run at (1,19) width 194: "block; border: 1em lime solid;" - text run at (1,37) width 98: "margin: 8px; } " - text run at (98,37) width 98: "HEAD, BODY" - text run at (1,55) width 181: "{ display: table-cell; border:" - text run at (1,73) width 76: "solid thick; " - text run at (76,73) width 93: "padding: 1em;" - text run at (1,91) width 102: "margin: 1em; } " - text run at (102,91) width 74: "HEAD > *," - text run at (1,109) width 181: "BODY > * { display: block;" - text run at (1,127) width 178: "border: thin dotted; margin:" - text run at (1,145) width 60: "1em 0; } " - text run at (60,145) width 105: "/* Formatting */" - text run at (1,163) width 141: "HTML { color: black;" - text run at (1,181) width 140: "background: green; } " - text run at (140,181) width 57: "HEAD {" - text run at (1,199) width 195: "color: white; background: red;" - text run at (1,217) width 12: "} " - text run at (12,217) width 151: "BODY { color: yellow;" - text run at (1,235) width 124: "background: teal; }" - RenderTableCell {BODY} at (246,41) size 491x1355 [color=#FFFF00] [bgcolor=#008080] [border: (5px solid #FFFF00)] [r=0 c=1 rs=1 cs=1] - RenderBlock {H1} at (21,94) size 449x76 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 152x37 - text run at (1,1) width 152: "Rendering " - RenderInline {CODE} at (153,6) size 63x30 - RenderText {#text} at (153,6) size 63x30 - text run at (153,6) width 63: "BODY" - RenderText {#text} at (215,1) size 69x37 - text run at (215,1) width 69: " and " - RenderInline {CODE} at (283,6) size 63x30 - RenderText {#text} at (283,6) size 63x30 - text run at (283,6) width 63: "HEAD" - RenderText {#text} at (1,1) size 382x74 - text run at (345,1) width 38: " as" - text run at (1,38) width 156: "children of " - RenderInline {CODE} at (156,43) size 64x30 - RenderText {#text} at (156,43) size 64x30 - text run at (156,43) width 64: "HTML" - RenderText {#text} at (219,38) size 44x37 - text run at (219,38) width 44: " - 2" - RenderBlock {P} at (21,202) size 449x38 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 393x18 - text run at (1,1) width 393: "If you have any comments to make regarding this test, e-mail" - RenderInline {A} at (1,19) size 186x18 [color=#0000EE] - RenderText {#text} at (1,19) size 186x18 - text run at (1,19) width 186: "py8ieh=eviltests@bath.ac.uk" - RenderText {#text} at (186,19) size 5x18 - text run at (186,19) width 5: "." - RenderBlock {DL} at (21,256) size 449x92 [border: (1px dotted #FFFF00)] - RenderBlock {DT} at (1,1) size 447x18 - RenderText {#text} at (0,0) size 83x18 - text run at (0,0) width 83: "Prerequisites" - RenderBlock {DD} at (41,19) size 407x72 - RenderText {#text} at (0,0) size 392x54 - text run at (0,0) width 392: "Browsers that are subjected to this test should support the the" - text run at (0,18) width 388: "background, padding, margin, border and color properties of" - text run at (0,36) width 160: "CSS, and in addition the " - RenderInline {CODE} at (160,38) size 63x15 - RenderText {#text} at (160,38) size 63x15 - text run at (160,38) width 63: "overflow" - RenderText {#text} at (0,36) size 400x36 - text run at (222,36) width 178: " property and fixed position" - text run at (0,54) width 109: "stuff from CSS2." - RenderBlock {H2} at (21,372) size 449x58 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 439x56 - text run at (1,1) width 439: "1. Making the BODY and the HEAD into a" - text run at (1,29) width 51: "table" - RenderBlock {P} at (21,454) size 449x20 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 264x18 - text run at (1,1) width 264: "This is really evil, but completely valid..." - RenderBlock {P} at (21,490) size 449x110 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 430x108 - text run at (1,1) width 426: "This document should have two cells, side by side: one on the left," - text run at (1,19) width 426: "the other on the right. The one on the left should be red with white" - text run at (1,37) width 430: "writing and a thick white border. It should contain four dotted lines" - text run at (1,55) width 388: "separated by a blank line, followed by a dotted bordered box" - text run at (1,73) width 403: "containing the document title, and another dotted bordered box" - text run at (1,91) width 286: "containing the stylesheet, also shown below:" - RenderBlock {PRE} at (21,616) size 449x17 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 40x15 - text run at (1,1) width 40: " ..." - text run at (40,1) width 1: " " - RenderBlock {P} at (21,649) size 449x38 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 419x36 - text run at (1,1) width 419: "The dotted borders and lines and the text in the left cell should be" - text run at (1,19) width 40: "white." - RenderBlock {P} at (21,703) size 449x38 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 447x36 - text run at (1,1) width 447: "The right cell should be teal, with yellow text. This paragraph you are" - text run at (1,19) width 255: "reading now should be in this right cell." - RenderBlock {P} at (21,757) size 449x38 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 413x36 - text run at (1,1) width 413: "The width of the two cells is left up to the user agent to decide, I" - text run at (1,19) width 37: "think." - RenderBlock {P} at (21,811) size 449x74 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 443x72 - text run at (1,1) width 443: "The right cell should look similar to the left cell in formatting -- each" - text run at (1,19) width 442: "box of text should have a yellow dotted border, and there should be a" - text run at (1,37) width 420: "blank line between each such box. No box should be nested -- the" - text run at (1,55) width 356: "dotted boxes should always be distinct from each other." - RenderBlock {P} at (21,901) size 449x38 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 417x36 - text run at (1,1) width 417: "The cells should be the same height, and they should have grown" - text run at (1,19) width 229: "vertically to accommodate this text." - RenderBlock {P} at (21,955) size 449x56 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 437x54 - text run at (1,1) width 436: "Around the whole setup should be two borders, dark green and light" - text run at (1,19) width 437: "green. The cells should be separated from each other and from these" - text run at (1,37) width 230: "outer borders by 1em of dark green." - RenderBlock {P} at (21,1027) size 449x38 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 446x36 - text run at (1,1) width 446: "There should also be some alternate stylesheets set up to allow you to" - text run at (1,19) width 388: "display the content. This may help with diagnosis." - RenderBlock {H2} at (21,1089) size 449x30 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 156x28 - text run at (1,1) width 156: "Submit Results" - RenderBlock {FORM} at (21,1143) size 449x90 [border: (1px dotted #FFFF00)] - RenderBlock {P} at (1,17) size 447x56 - RenderText {#text} at (0,0) size 263x18 - text run at (0,0) width 263: "How does your browser fare on this test?" - RenderMenuList {SELECT} at (0,19) size 447x18 [color=#000000] [bgcolor=#FFFFFF] - RenderBlock (anonymous) at (0,0) size 447x18 - RenderText at (8,2) size 212x13 - text run at (8,2) width 212: "Document renders exactly as described." - RenderText {#text} at (0,0) size 0x0 - RenderInline {LABEL} at (0,37) size 219x18 - RenderText {#text} at (0,37) size 72x18 - text run at (0,37) width 72: "Comment: " - RenderTextControl {INPUT} at (71,37) size 148x19 [color=#000000] [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (218,37) size 5x18 - text run at (218,37) width 5: " " - RenderButton {INPUT} at (222,38) size 54x18 [color=#000000D8] [bgcolor=#C0C0C0] [border: none (2px outset #C0C0C0) none (2px outset #C0C0C0)] - RenderBlock (anonymous) at (8,2) size 37x13 - RenderText at (0,0) size 37x13 - text run at (0,0) width 37: "Submit" - RenderText {#text} at (0,0) size 0x0 - RenderBlock {P} at (21,1267) size 449x20 [border: (1px dotted #FFFF00)] - RenderInline {A} at (1,1) size 162x18 [color=#0000EE] - RenderText {#text} at (1,1) size 162x18 - text run at (1,1) width 162: "Up to the Evil Tests Page" - RenderText {#text} at (162,1) size 5x18 - text run at (162,1) width 5: "." - RenderBlock {P} at (21,1303) size 449x20 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 177x18 - text run at (1,1) width 177: "This page is maintained by " - RenderInline {A} at (177,1) size 79x18 [color=#0000EE] - RenderText {#text} at (177,1) size 79x18 - text run at (177,1) width 79: "Ian Hickson" - RenderText {#text} at (255,1) size 10x18 - text run at (255,1) width 10: " (" - RenderInline {A} at (264,1) size 125x18 [color=#0000EE] - RenderText {#text} at (264,1) size 125x18 - text run at (264,1) width 125: "py8ieh@bath.ac.uk" - RenderText {#text} at (388,1) size 10x18 - text run at (388,1) width 10: ")." - RenderBlock {P} at (21,1339) size 449x20 [border: (1px dotted #FFFF00)] - RenderText {#text} at (1,1) size 172x18 - text run at (1,1) width 172: "Last updated in June 1999." -layer at (367,1224) size 141x13 backgroundClip at (367,1224) size 140x13 clip at (367,1224) size 140x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (291,1273) size 449x2 clip at (0,0) size 0x0 - RenderBlock {HR} at (21,1249) size 449x2 [color=#808080] [border: (1px dotted #808080)] diff --git a/LayoutTests/platform/mac-ventura/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt b/LayoutTests/platform/mac-ventura/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt deleted file mode 100644 index ea6ffd8358f59..0000000000000 --- a/LayoutTests/platform/mac-ventura/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt +++ /dev/null @@ -1,34 +0,0 @@ -layer at (0,0) size 800x600 - RenderView at (0,0) size 800x600 -layer at (0,0) size 800x600 - RenderBlock {HTML} at (0,0) size 800x600 - RenderBody {BODY} at (8,8) size 784x576 - RenderBlock {FORM} at (0,0) size 784x83 - RenderTable {TABLE} at (0,0) size 296x83 [border: (1px outset #000000)] - RenderTableSection {TBODY} at (1,1) size 294x81 - RenderTableRow {TR} at (0,2) size 294x77 - RenderTableCell {TD} at (2,2) size 290x77 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderTable {TABLE} at (2,2) size 286x73 [border: (2px outset #000000)] - RenderTableSection {TBODY} at (2,2) size 282x69 - RenderTableRow {TR} at (0,2) size 282x40 - RenderTableCell {TD} at (2,2) size 81x40 [border: (1px inset #000000)] [r=0 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 57x36 - text run at (2,2) width 55: "Member" - text run at (2,20) width 57: "Number:" - RenderTableCell {TD} at (84,10) size 190x24 [border: (1px inset #000000)] [r=0 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (2,10) size 147x20 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderTableRow {TR} at (0,44) size 282x23 - RenderTableCell {TD} at (2,44) size 81x23 [border: (1px inset #000000)] [r=1 c=0 rs=1 cs=1] - RenderText {#text} at (2,2) size 31x19 - text run at (2,2) width 31: "PIN:" - RenderTableCell {TD} at (84,44) size 190x23 [border: (1px inset #000000)] [r=1 c=1 rs=1 cs=1] - RenderTextControl {INPUT} at (2,2) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderFlexibleBox {DIV} at (3,3) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 - RenderText {#text} at (0,0) size 0x0 - RenderTableCell {TD} at (275,53) size 5x5 [border: (1px inset #000000)] [r=1 c=2 rs=1 cs=1] -layer at (105,31) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 -layer at (105,64) size 141x13 - RenderBlock {DIV} at (0,0) size 141x13 diff --git a/LayoutTests/platform/mac-ventura/transforms/3d/general/perspective-non-layer-expected.txt b/LayoutTests/platform/mac-ventura/transforms/3d/general/perspective-non-layer-expected.txt deleted file mode 100644 index e5b1794c50a57..0000000000000 --- a/LayoutTests/platform/mac-ventura/transforms/3d/general/perspective-non-layer-expected.txt +++ /dev/null @@ -1,16 +0,0 @@ -layer at (0,0) size 800x600 - RenderView 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 - RenderBlock (anonymous) at (0,0) size 784x19 - RenderInline {SPAN} at (0,0) size 147x18 - RenderText {#text} at (0,0) size 0x0 - RenderTextControl {INPUT} at (0,0) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #808080)] - RenderText {#text} at (0,0) size 0x0 - RenderBlock (anonymous) at (0,19) size 784x0 - RenderBlock {DIV} at (0,0) size 784x0 - RenderBlock (anonymous) at (0,19) size 784x0 - RenderInline {SPAN} at (0,0) size 0x0 -layer at (11,11) size 141x13 - RenderBlock {DIV} at (3,3) size 141x13 diff --git a/LayoutTests/platform/mac-wk1/TestExpectations b/LayoutTests/platform/mac-wk1/TestExpectations index 1df112037c79a..c8d87ab8bb939 100644 --- a/LayoutTests/platform/mac-wk1/TestExpectations +++ b/LayoutTests/platform/mac-wk1/TestExpectations @@ -1353,7 +1353,6 @@ editing/secure-input/reset-state-on-navigation.html [ Failure ] # Context menu API is not exposed on DumpRenderTree. editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html [ Skip ] -editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-does-not-leak.html [ Skip ] # Color input is not yet implemented on Mac WK1. Currently, using it erroneously triggers an ASSERT_NOT_REACHED. webkit.org/b/119094 fast/forms/color/input-color-onchange-event.html [ Skip ] @@ -2594,28 +2593,19 @@ imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/b imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html?wss [ Pass Failure ] #webkit.org/b/248537 Batch mark expectations for Ventura test failures -[ Ventura+ arm64 ] svg/transforms/transformed-text-fill-pattern.html [ ImageOnlyFailure ] -[ Ventura+ ] media/accessibility-describes-video.html [ Crash ] -[ Ventura+ ] media/modern-media-controls/pip-support/pip-support-click.html [ Pass Crash ] -[ Ventura+ ] media/audio-playback-restriction-removed-track-enabled.html [ Crash ] -[ Ventura+ ] media/modern-media-controls/media-controller/media-controller-auto-hide-rewind-with-mouse-enter.html [ Crash ] -[ Ventura+ ] media/modern-media-controls/media-controls/media-controls-display-above-captions.html [ Crash ] -[ Ventura+ ] media/track/track-delete-during-setup.html [ Crash ] -[ Ventura+ ] media/track/track-in-band-cues-added-once.html [ Crash ] -[ Ventura+ ] media/track/track-in-band.html [ Crash ] -[ Ventura+ ] media/track/track-long-captions-file.html [ Crash ] -imported/w3c/web-platform-tests/secure-contexts/basic-popup-and-iframe-tests.html [ Pass Failure ] -[ Ventura+ ] http/wpt/webaudio/audioworklet-addModule-cors.sub.https.html +[ arm64 ] svg/transforms/transformed-text-fill-pattern.html [ ImageOnlyFailure ] +media/modern-media-controls/media-controller/media-controller-auto-hide-rewind-with-mouse-enter.html [ Pass Crash ] +media/track/track-in-band-cues-added-once.html [ Pass Crash ] +[ Debug ] media/track/track-long-captions-file.html [ Pass Crash ] +imported/w3c/web-platform-tests/secure-contexts/basic-popup-and-iframe-tests.html [ Failure ] http/wpt/fetch/fetch-metadata-websocket.html [ Failure ] http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-https.html [ Pass Failure ] -http/tests/media/hls/hls-webvtt-seek-backwards.html [ Timeout Crash ] -[ Ventura+ ] http/tests/media/hls/hls-webvtt-default.html [ Crash ] -[ Ventura+ ] http/tests/inspector/network/resource-timing.html [ Failure ] +http/tests/media/hls/hls-webvtt-seek-backwards.html [ Timeout Failure ] +http/tests/inspector/network/resource-timing.html [ Pass Failure ] http/tests/inspector/network/resource-security-certificate.html [ Pass Failure ] -[ Ventura+ ] http/tests/inspector/network/getSerializedCertificate.html [ Failure ] -[ Ventura+ arm64 ] fast/writing-mode/english-bt-text-with-spelling-marker.html [ ImageOnlyFailure ] +http/tests/inspector/network/getSerializedCertificate.html [ Pass Failure ] css3/scroll-snap/scroll-padding-mainframe-paging.html [ Failure ] -[ Ventura+ ] compositing/fixed-with-main-thread-scrolling.html [ ImageOnlyFailure ] +compositing/fixed-with-main-thread-scrolling.html [ ImageOnlyFailure ] # https://bugs.webkit.org/show_bug.cgi?id=249544 # Generic Permissions API is not supported in WK1 @@ -2700,8 +2690,7 @@ webkit.org/b/259546 [ Debug ] media/modern-media-controls/tracks-support/text-tr webkit.org/b/260070 fast/selectors/style-invalidation-hover-change-descendants.html [ Pass Failure ] webkit.org/b/260070 fast/selectors/style-invalidation-hover-change-siblings.html [ Failure ] -webkit.org/b/260107 [ Debug ] http/wpt/workers/modules/dedicated-worker-import-csp.html [ Skip ] -webkit.org/b/260111 [ Ventura+ Release ] http/wpt/workers/modules/dedicated-worker-import-csp.html [ Pass Failure ] +webkit.org/b/264258 http/wpt/workers/modules/dedicated-worker-import-csp.html [ Pass Failure ] webkit.org/b/260280 fullscreen/fullscreen-no-scrollbars-on-ancestor-root.html [ ImageOnlyFailure ] @@ -2712,8 +2701,6 @@ imported/w3c/web-platform-tests/css/css-backgrounds/background-clip-content-box- imported/w3c/web-platform-tests/css/selectors/invalidation/nth-last-child-in-shadow-root.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-085.html [ ImageOnlyFailure ] -webkit.org/b/260888 [ Ventura+ ] media/track/track-user-stylesheet-override.html [ Crash ] - webkit.org/b/261312 inspector/timeline/timeline-event-CancelAnimationFrame.html [ Pass Failure ] webkit.org/b/261312 inspector/timeline/timeline-event-performance-mark.html [ Pass Failure ] webkit.org/b/261312 inspector/timeline/timeline-event-RequestAnimationFrame.html [ Pass Failure ] @@ -2772,13 +2759,12 @@ http/tests/media/fairplay/legacy-fairplay-hls.html [ Pass Failure ] # webkit.org/b/261308 Batch mark expectations for flaky imported/w3c/web-platform-tests imported/w3c/web-platform-tests/cookies/path/default.html [ Pass Failure ] -imported/w3c/web-platform-tests/css/motion/offset-path-shape-polygon-002.html [ Pass ImageOnlyFailure ] -imported/w3c/web-platform-tests/css/motion/offset-path-shape-polygon-003.html [ Pass ImageOnlyFailure ] -imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-custom-timing-function.html [ Pass ImageOnlyFailure ] +imported/w3c/web-platform-tests/css/motion/offset-path-shape-polygon-002.html [ ImageOnlyFailure ] +imported/w3c/web-platform-tests/css/motion/offset-path-shape-polygon-003.html [ ImageOnlyFailure ] +imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-custom-timing-function.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w.html [ Pass Failure ] -[ Ventura+ ] imported/w3c/web-platform-tests/css/css-backgrounds/background-size-percentage-root.html [ Pass ImageOnlyFailure ] -webkit.org/b/261427 [ Ventura+ ] media/track/track-in-band-mode.html [ Pass Crash ] +webkit.org/b/261427 media/track/track-in-band-mode.html [ Pass Crash ] webkit.org/b/261618 [ Debug ] imported/w3c/web-platform-tests/preload/link-header-preload-non-html.html [ Pass Crash ] @@ -2840,10 +2826,6 @@ fast/dom/no-scroll-when-command-click-fragment-URL.html [ Skip ] # Deletes nodes asynchronously using OpportunisticTaskScheduler, which is disabled on WK1 intersection-observer/root-element-deleted.html [ Skip ] -# webkit.org/b/267799 [ Ventura wk1 ] 2 tests in media/track are constant crash -[ Ventura ] media/track/track-in-band-layout.html [ Crash ] -[ Ventura ] media/track/track-paint-on-captions.html [ Crash ] - # webkit.org/b/273522 2 backdrop-filter tests in imported/w3c/web-platform-tests/css/filter-effects are constant failures [ Sonoma+ ] imported/w3c/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html [ ImageOnlyFailure ] [ Sonoma+ ] imported/w3c/web-platform-tests/css/filter-effects/backdrop-filters-sepia.html [ ImageOnlyFailure ] @@ -2864,8 +2846,6 @@ webkit.org/b/270310 [ Sonoma+ ] imported/w3c/web-platform-tests/html/semantics/i webkit.org/b/270385 [ Sonoma+ ] fast/images/jpegxl-with-color-profile.html [ ImageOnlyFailure ] -webkit.org/b/259485 [ Ventura ] http/tests/media/hls/track-in-band-multiple-cues.html [ Skip ] - # webkit.org/b/270199 [ MacOS WK1 Debug ] fast/frames/lots-of-iframes.html and fast/frames/lots-of-objects.html are consistent/flaky timeouts [ Debug ] fast/frames/lots-of-iframes.html [ Pass Timeout ] [ Debug ] fast/frames/lots-of-objects.html [ Pass Timeout ] @@ -2897,9 +2877,9 @@ imported/w3c/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties [ Sonoma+ ] imported/w3c/web-platform-tests/worklets/paint-worklet-credentials.https.html [ Pass Failure ] # webkit.org/b/272115 REGRESSION (274826@main): [ Sonoma WK1 ] 2X imported/w3c/web-platform-tests/mixed-content/tentative/autoupgrades tests are flaky failures -[ Ventura+ ] imported/w3c/web-platform-tests/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html [ Pass Failure ] -[ Ventura+ ] imported/w3c/web-platform-tests/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html [ Pass Failure ] -[ Ventura+ ] imported/w3c/web-platform-tests/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html [ Pass Failure ] +imported/w3c/web-platform-tests/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html [ Failure ] +imported/w3c/web-platform-tests/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html [ Failure ] +imported/w3c/web-platform-tests/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html [ Failure ] # webkit.org/b/272081 [web-animations] update WPT import for web-animations [ Sonoma ] imported/w3c/web-platform-tests/css/filter-effects/css-filters-animation-drop-shadow.html [ ImageOnlyFailure ] @@ -2910,40 +2890,25 @@ imported/w3c/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties [ Sonoma+ ] imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-in-effect.html [ ImageOnlyFailure ] # webkit.org/b/272926 [ Ventura wk1 ] 8 tests in imported/w3c/web-platform-tests/workers are flaky failures -[ Ventura ] imported/w3c/web-platform-tests/worklets/animation-worklet-credentials.https.html [ Pass Failure ] -[ Ventura ] imported/w3c/web-platform-tests/worklets/audio-worklet-credentials.https.html [ Pass Failure ] -[ Ventura ] imported/w3c/web-platform-tests/worklets/audio-worklet-csp.https.html [ Pass Failure ] -[ Ventura ] imported/w3c/web-platform-tests/worklets/audio-worklet-import.https.html [ Pass Failure ] -[ Ventura ] imported/w3c/web-platform-tests/worklets/audio-worklet-referrer.https.html [ Pass Failure ] -[ Ventura ] imported/w3c/web-platform-tests/worklets/layout-worklet-credentials.https.html [ Pass Failure ] -[ Ventura ] imported/w3c/web-platform-tests/worklets/paint-worklet-credentials.https.html [ Pass Failure ] -[ Ventura+ ] imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html [ Pass Failure ] +imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html [ Pass Failure ] -webkit.org/b/272939 [ Ventura+ ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/referrer-strict-policies.sub.html [ Pass Failure ] +webkit.org/b/272939 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/referrer-strict-policies.sub.html [ Pass Failure ] webkit.org/b/273279 fonts/font-fallback-prefers-pictographs.html [ Skip ] # rdar://127055453 ([ EWS MacOS WK1 ] http/tests/media/hls/hls-webvtt-style.html is a flaky timeout (273251)) http/tests/media/hls/hls-webvtt-style.html [ Pass Timeout ] -# rdar://127302101 ([ Ventura WK1 Debug ] 2x imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode are constant crashes (273501)) -[ Ventura Debug ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-disabled.html [ Skip ] -[ Ventura Debug ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode.html [ Skip ] - # Test relies on GPUP. fast/canvas/image-buffer-resource-limits.html [ Skip ] -webkit.org/b/273577 [ Ventura ] http/tests/media/hls/track-webvtt-multitracks.html [ Skip ] - -# rdar://65188503 - platform/mac/media/media-source/is-type-supported-vp9-codec-check.html [ Skip ] - # rdar://65188503 +platform/mac/media/media-source/is-type-supported-vp9-codec-check.html [ Skip ] platform/mac/media/mediacapabilities/vp9-decodingInfo-sw.html [ Skip ] # webkit.org/b/235733 Skip 2 editing/execCommand tests for making subsequent tests fail on wk1 Apple Silicon macs. -[ release ] editing/execCommand/insert-newline-in-quoted-content-crash.html [ Skip ] -[ release ] editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html [ Skip ] +[ Release ] editing/execCommand/insert-newline-in-quoted-content-crash.html [ Skip ] +[ Release ] editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html [ Skip ] webkit.org/b/260883 inspector/timeline/timeline-recording.html [ Skip ] @@ -2951,6 +2916,9 @@ webkit.org/b/274409 imported/w3c/web-platform-tests/content-security-policy/repo webkit.org/b/276145 http/tests/security/block-popup-to-all-zero-address.html [ Skip ] +# webkit.org/b/255427 [ Ventura ] 4/13 batch mark expectations and branch bugs +[ x86_64 ] fast/shrink-wrap/rect-shrink-wrap.html [ Pass ImageOnlyFailure ] + # rdar://124363343 ([ Sequoia+ ] Multiple WebKit tests failing after explicit "SameSite" attribute change) http/tests/xmlhttprequest/cross-origin-authorization.html [ Failure ] @@ -3014,17 +2982,17 @@ webkit.org/b/284068 [ Sequoia+ ] http/tests/download/anchor-download-redirect-cr webkit.org/b/284200 [ Sequoia+ ] http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party.https.html [ Failure ] webkit.org/b/284200 [ Sequoia+ ] http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.https.html [ Failure ] -webkit.org/b/284486 [ Ventura+ ] imported/w3c/web-platform-tests/css/css-grid/subgrid/alignment-in-subgridded-axes-001.html [ Pass Failure ] -webkit.org/b/284486 [ Ventura+ ] imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-baseline-005.html [ Pass Failure ] -webkit.org/b/284486 [ Ventura+ ] imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-baseline-006.html [ Pass Failure ] -webkit.org/b/284486 [ Ventura+ ] imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-baseline-007.html [ Pass Failure ] +webkit.org/b/284486 imported/w3c/web-platform-tests/css/css-grid/subgrid/alignment-in-subgridded-axes-001.html [ Pass Failure ] +webkit.org/b/284486 imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-baseline-005.html [ Pass Failure ] +webkit.org/b/284486 imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-baseline-006.html [ Pass Failure ] +webkit.org/b/284486 imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-baseline-007.html [ Pass Failure ] -webkit.org/b/284898 [ Ventura+ ] fonts/font-weight-invalid-crash.html [ Pass Failure ] -webkit.org/b/284898 [ Ventura+ ] fonts/ligature.html [ Pass Failure ImageOnlyFailure ] +webkit.org/b/284898 fonts/font-weight-invalid-crash.html [ Pass Failure ] +webkit.org/b/284898 fonts/ligature.html [ Pass Failure ImageOnlyFailure ] -webkit.org/b/284954 [ Ventura+ ] imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/block-container-block-start-child-with-border.html [ Pass Failure ] +webkit.org/b/284954 imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/block-container-block-start-child-with-border.html [ Pass Failure ] -webkit.org/b/285089 [ Ventura+ Debug ] imported/w3c/web-platform-tests/editing/crashtests/replace-document-root-and-refocus-window.html [ Skip ] +webkit.org/b/285089 [ Debug ] imported/w3c/web-platform-tests/editing/crashtests/replace-document-root-and-refocus-window.html [ Skip ] webkit.org/b/286159 [ Debug ] fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444.html [ Pass Failure ] @@ -3036,7 +3004,7 @@ webkit.org/b/286392 imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid webkit.org/b/286602 media/media-source/media-detachablemse-append.html [ Pass Failure ] -webkit.org/b/255555 [ Ventura+ ] imported/w3c/web-platform-tests/xhr/request-content-length.any.worker.html [ Pass Failure ] +webkit.org/b/255555 imported/w3c/web-platform-tests/xhr/request-content-length.any.worker.html [ Pass Failure ] webkit.org/b/287713 printing/background-clip-text.html [ Failure ] @@ -3057,3 +3025,5 @@ webkit.org/b/287973 imported/w3c/web-platform-tests/css/css-grid/grid-definition webkit.org/b/215773 http/tests/websocket/tests/hybi/client-close-2.html [ Pass Failure ] webkit.org/b/287976 imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/block-container-block-start-self-collapsing-nested.html [ Pass Failure ] + +webkit.org/b/288378 fast/harness/internals-object-property-access-on-window-without-frame-crash.html [ Skip ] diff --git a/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt b/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt index 7faec1d6de09c..e651f8fc9b1c4 100644 --- a/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt +++ b/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt @@ -8,6 +8,7 @@ PASS align-items PASS align-self PASS alignment-baseline PASS anchor-name +PASS anchor-scope PASS animation-composition PASS animation-delay PASS animation-direction @@ -113,6 +114,14 @@ PASS container-type PASS content PASS content-visibility PASS continue +PASS corner-bottom-left-shape +PASS corner-bottom-right-shape +PASS corner-end-end-shape +PASS corner-end-start-shape +PASS corner-start-end-shape +PASS corner-start-start-shape +PASS corner-top-left-shape +PASS corner-top-right-shape PASS counter-increment PASS counter-reset PASS counter-set diff --git a/LayoutTests/platform/mac-wk2/TestExpectations b/LayoutTests/platform/mac-wk2/TestExpectations index 8dd48e8fdbc16..884107a3f69ec 100644 --- a/LayoutTests/platform/mac-wk2/TestExpectations +++ b/LayoutTests/platform/mac-wk2/TestExpectations @@ -722,8 +722,6 @@ imported/blink/fast/multicol/dynamic/add-spanner-inside-overflow-hidden.html [ P imported/blink/fast/multicol/newmulticol/multicol-becomes-regular-block.html [ Pass ImageOnlyFailure ] imported/blink/fast/transforms/transform-update-frame-overflow.html [ Pass ImageOnlyFailure ] -webkit.org/b/261208 [ Ventura Release ] fast/text-autosizing/ios/text-autosizing-after-back.html [ Pass ImageOnlyFailure ] - # PiP tests are only enabled for Sierra WebKit2. # rdar://problem/27574303 media/fullscreen-api-enabled-media-with-presentation-mode.html [ Pass ] @@ -1389,43 +1387,27 @@ webkit.org/b/245010 imported/w3c/web-platform-tests/html/browsers/browsing-the-w [ Debug ] http/tests/security/showModalDialog-sync-cross-origin-page-load2.html [ Skip ] [ Debug ] imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/choose-default-001.html [ Skip ] -webkit.org/b/254778 [ Ventura Debug arm64 ] fast/images/avif-image-decoding.html [ Pass Crash ] - #webkit.org/b/248537 Batch mark expectations for Ventura test failures -[ Ventura+ ] webrtc/canvas-to-peer-connection-2d.html [ Pass Timeout ] -[ Ventura+ ] webrtc/canvas-to-peer-connection.html [ Pass Failure Timeout ] -[ Ventura+ ] webrtc/captureCanvas-webrtc-software-h264-baseline.html [ Pass Failure Timeout ] -[ Ventura+ ] scrollbars/scrolling-backward-by-page-on-keyboard-spacebar.html [ Pass Failure ] -[ Ventura+ ] webaudio/decode-audio-data-webm-vorbis.html [ Failure ] -[ Ventura+ x86_64 ] svg/gradients/spreadMethodAlpha.svg [ ImageOnlyFailure ] -[ Ventura+ x86_64 ] scrollbars/scrolling-by-page-accounting-oversized-fixed-elements-on-keyboard-spacebar.html [ Pass Failure ] -[ Ventura+ ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute.https.sub.html [ Pass Failure ] -imported/mozilla/svg/blend-color.svg [ Pass ImageOnlyFailure ] -imported/w3c/web-platform-tests/css/css-grid/alignment/grid-item-aspect-ratio-stretch-2.html [ Pass ImageOnlyFailure ] -imported/mozilla/svg/blend-luminosity.svg [ Pass ImageOnlyFailure ] -[ Debug arm64 ] imported/w3c/web-platform-tests/fetch/api/request/destination/fetch-destination-frame.https.html [ Crash ] -[ Ventura+ Debug x86_64 ] fast/visual-viewport/viewport-dimensions-exclude-custom-scrollbars.html [ Pass Failure ] -[ Ventura+ Debug x86_64 ] fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up.html [ Failure ] -[ Ventura+ Debug x86_64 ] fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down.html [ Failure ] -[ Ventura+ Debug x86_64 ] fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html [ Failure ] +webrtc/canvas-to-peer-connection-2d.html [ Pass Failure ] +webrtc/canvas-to-peer-connection.html [ Pass Failure ] +[ Sequoia x86_64 ] webrtc/captureCanvas-webrtc-software-h264-baseline.html [ Pass Failure ] +webaudio/decode-audio-data-webm-vorbis.html [ Failure ] +[ x86_64 ] scrollbars/scrolling-by-page-accounting-oversized-fixed-elements-on-keyboard-spacebar.html [ Pass Failure ] +imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute.https.sub.html [ Pass Failure ] +[ x86_64 ] imported/mozilla/svg/blend-color.svg [ ImageOnlyFailure ] +[ x86_64 ] imported/w3c/web-platform-tests/css/css-grid/alignment/grid-item-aspect-ratio-stretch-2.html [ Pass ImageOnlyFailure ] +[ x86_64 ] imported/mozilla/svg/blend-luminosity.svg [ ImageOnlyFailure ] fast/speechrecognition/start-recognition-then-stop.html [ Pass Failure ] -[ x86_64 ] fast/mediastream/getUserMedia-to-canvas-1.html [ Pass Timeout ] [ x86_64 ] fast/mediastream/getUserMedia-to-canvas-2.html [ Pass Timeout ] fast/borders/border-painting-correctness-dashed.html [ ImageOnlyFailure ] fast/borders/border-painting-correctness-dotted.html [ ImageOnlyFailure ] [ x86_64 ] css3/blending/background-blend-mode-body-image.html [ ImageOnlyFailure ] -[ Ventura+ ] fast/images/animated-heics-draw.html [ Pass Timeout ] -[ Ventura+ ] http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html [ Failure ] -[ Ventura+ x86_64 ] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/block-local-documents-inheriting-none.https.html [ Pass Failure ] -[ Ventura+ x86_64 ] imported/w3c/web-platform-tests/html/browsers/history/the-history-interface/history_go_no_argument.html [ Pass Failure ] -[ x86_64 ] scrollbars/scrolling-by-page-on-keyboard-spacebar.html [ Pass Failure ] -[ Ventura+ ] platform/mac-wk2/plugins/asynchronous-destroy-before-initialization.html [ Pass Failure ] +http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html [ Failure ] +[ x86_64 ] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/block-local-documents-inheriting-none.https.html [ Failure ] +[ arm64 ] imported/w3c/web-platform-tests/html/browsers/history/the-history-interface/history_go_no_argument.html [ Pass Failure ] imported/w3c/web-platform-tests/workers/SharedWorker_dataUrl.html [ Pass Failure ] -[ Ventura+ Debug x86_64 ] webrtc/datachannel/bufferedAmountLowThreshold-default.html [ Pass Failure ] -[ Ventura Debug x86_64 ] editing/caret/color-span-inside-editable-background.html [ Pass ImageOnlyFailure ] -[ Ventura+ x86_64 ] fast/css/text-overflow-input-focus-placeholder.html [ Pass ImageOnlyFailure ] -[ Ventura+ x86_64 Debug ] webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html [ Pass Timeout ] -[ Ventura+ Debug x86_64 ] webgl/2.0.0/conformance/state/gl-object-get-calls.html [ Pass Timeout ] +[ x86_64 Debug ] webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html [ Pass Failure ] +css3/scroll-snap/scroll-padding-overflow-paging.html [ Pass Failure ] # WebGL in OffscreenCanvas requires the GPUP. imported/w3c/web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker.html [ Skip ] @@ -1472,9 +1454,7 @@ webkit.org/b/238749 imported/w3c/web-platform-tests/html/semantics/interactive-e [ Debug ] imported/w3c/web-platform-tests/webcodecs/videoFrame-construction.crossOriginSource.sub.html [ Pass Failure ] imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-035.html [ Pass ImageOnlyFailure ] fast/forms/file/entries-api/image-no-transcode-open-panel.html [ Pass Crash ] -[ Debug Ventura arm64 ] http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html [ Pass Crash ] [ Debug arm64 ] media/track/track-css-visible-stroke.html [ Pass Crash ] -[ Ventura Debug arm64 ] http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html [ Pass Crash ] media/track/video-track-addition-and-frame-removal.html [ Pass Crash ] media/track/track-cue-left-align.html [ Pass Crash ] http/tests/media/modern-media-controls/skip-back-support/skip-back-support-live-broadcast.html [ Pass Crash ] @@ -1502,8 +1482,6 @@ webkit.org/b/259464 fast/events/wheel/redispatched-wheel-event.html [ Pass Failu webkit.org/b/259708 fast/mediastream/video-rotation-gpu-process-crash.html [ Pass Crash Failure Timeout ] -webkit.org/b/259740 [ Ventura Release arm64 ] css3/color-filters/color-filter-outline.html [ Pass ImageOnlyFailure ] - webkit.org/b/260113 [ arm64 ] http/wpt/webauthn/ctap-hid-failure.https.html [ Pass Failure ] # These tests require compile-time flags in WebKit that are only enabled in iOS 17 and Sonoma. They were marked as Skip in @@ -1549,8 +1527,6 @@ webkit.org/b/260113 [ arm64 ] http/wpt/webauthn/ctap-hid-failure.https.html [ Pa webkit.org/b/239627 [ arm64 ] fast/scrolling/mac/adjust-scroll-snap-during-gesture.html [ Pass Failure ] -webkit.org/b/260917 [ Ventura ] fast/forms/border-color-relayout.html [ Pass ImageOnlyFailure ] - # Enable Sonoma only test added in rdar://110488738. [ Sonoma+ ] accessibility/mac/attributed-string/attributed-string-has-completion-annotation.html [ Pass ] @@ -1582,7 +1558,7 @@ webkit.org/b/261226 [ Sonoma+ ] fast/images/mac/play-pause-individual-animation- webkit.org/b/263044 imported/w3c/web-platform-tests/webrtc-stats/supported-stats.https.html [ Pass Failure ] # webkit.org/b/261308 Batch mark expectations for flaky imported/w3c/web-platform-tests -[ Ventura+ ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-opener.https.html [ Pass Failure ] +imported/w3c/web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-opener.https.html [ Pass Failure ] webkit.org/b/261344 requestidlecallback/requestidlecallback-does-not-block-timer.html [ Pass Failure ] @@ -1613,7 +1589,7 @@ webkit.org/b/263396 css3/color/text.html [ Skip ] fast/webgpu/nocrash/fuzz-286820.html [ Skip ] # skipped outside of macOS Sequoia due to crash in failed allocation -[ Ventura Sonoma ] fast/webgpu/nocrash/fuzz-279086.html [ Skip ] +[ Sonoma ] fast/webgpu/nocrash/fuzz-279086.html [ Skip ] # skipped on non-AS due to requiring features unavailable on Intel [ x86_64 ] fast/webgpu/nocrash/fuzz-273021.html [ Skip ] @@ -1632,7 +1608,7 @@ fast/webgpu/nocrash/fuzz-286820.html [ Skip ] [ x86_64 ] fast/webgpu/nocrash/fuzz-282710.html [ Skip ] # skipped due to failing when run in stress test mode -[ Ventura Sonoma ] fast/webgpu/nocrash/RenderBundle_WRITE.html [ Skip ] +[ Sonoma ] fast/webgpu/nocrash/RenderBundle_WRITE.html [ Skip ] [ Release arm64 Sequoia+ ] http/tests/webgpu/webgpu/api [ Pass Failure Timeout ] [ Release arm64 Sequoia+ ] http/tests/webgpu/webgpu/shader [ Pass Failure Timeout ] @@ -1681,11 +1657,7 @@ http/tests/webgpu/webgpu/shader/execution/flow_control/switch.html [ Pass ] # arm64 release only because the tests are incredibly slow due to their extensiveness [ Release arm64 ] http/tests/webgpu/webgpu/shader/execution/shader_io [ Pass ] -webkit.org/b/264266 [ Ventura+ x86_64 ] imported/w3c/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html [ ImageOnlyFailure ] - webkit.org/b/264306 fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html [ Pass ImageOnlyFailure Timeout ] -[ Ventura ] fast/scrolling/mac/scrollbars/scrollbar-width-dynamic-none-to-auto.html [ ImageOnlyFailure ] -[ Ventura ] fast/scrolling/mac/scrollbars/scrollbar-width-paint-001.html [ ImageOnlyFailure ] webkit.org/b/265599 [ Sonoma+ Debug x86_64 ] imported/w3c/web-platform-tests/html/browsers/the-window-object/open-close/open-features-tokenization-noreferrer.html [ Pass Crash ] @@ -1698,10 +1670,7 @@ http/wpt/opener/same-site-child-access-parent-iframe-via-windowproxy.html [ Pass webkit.org/b/265957 [ Release ] fullscreen/full-screen-layer-dump.html [ Pass Failure ] -# rdar://102425691 ([ New Test ](256068@main): [ Ventura+ ] http/wpt/webcodecs/videoFrame-colorSpace.html is a consistent failure) -[ Ventura+ ] http/wpt/webcodecs/videoFrame-colorSpace.html [ Pass Failure ] - -webkit.org/b/265954 [ Ventura+ Release x86_64 ] media/video-audio-session-mode.html [ Failure Crash ] +webkit.org/b/265954 [ Release x86_64 ] media/video-audio-session-mode.html [ Failure Crash ] webkit.org/b/266490 [ Sonoma+ ] fast/scrolling/overlay-scrollbars-scroll-corner.html [ Pass ImageOnlyFailure ] @@ -1738,7 +1707,7 @@ webkit.org/b/268398 [ Sonoma+ ] pdf/pdf-in-iframe-scrolling-tree-after-back.html [ Sonoma+ ] pdf/pdf-scrolling-tree-dynamic.html [ Failure Timeout ] [ Sonoma+ ] pdf/pdf-scrolling-tree.html [ Failure ] -webkit.org/b/270235 [ Ventura+ Debug x86_64 ] webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2.html [ Timeout ] +webkit.org/b/270235 [ Debug x86_64 ] webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2.html [ Timeout ] # webkit.org/b/266168 Two wheel/mousewheel passive event listeners WPT test pass on macOS Sonoma and up [ Sonoma+ ] imported/w3c/web-platform-tests/dom/events/non-cancelable-when-passive/passive-mousewheel-event-listener-on-div.html [ Pass ] @@ -1746,14 +1715,9 @@ webkit.org/b/270235 [ Ventura+ Debug x86_64 ] webgl/pending/conformance/glsl/mis webkit.org/b/271318 [ Debug ] http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html [ Skip ] -webkit.org/b/272685 [ Ventura+ x86_64 ] imported/w3c/web-platform-tests/svg/painting/reftests/percentage-attribute.svg [ ImageOnlyFailure ] - -# Inline predictions are only supported on Sonoma and later. -[ Ventura ] editing/input/mac/show-inline-prediction-with-adjacent-text.html [ Skip ] -[ Ventura ] editing/input/cocoa/writing-suggestions-textarea-multiple-lines.html [ Skip ] -[ Ventura ] editing/input/cocoa/do-not-allow-inline-predictions-if-text-changes.html [ Skip ] +webkit.org/b/272685 [ x86_64 ] imported/w3c/web-platform-tests/svg/painting/reftests/percentage-attribute.svg [ ImageOnlyFailure ] -webkit.org/b/273012 [ Ventura+ x86_64 ] imported/w3c/web-platform-tests/svg/painting/reftests/percentage.svg [ ImageOnlyFailure ] +webkit.org/b/273012 [ x86_64 ] imported/w3c/web-platform-tests/svg/painting/reftests/percentage.svg [ ImageOnlyFailure ] webkit.org/b/273905 [ X86_64 ] svg/filters/filter-on-root-tile-boundary.html [ Pass ImageOnlyFailure ] @@ -1792,14 +1756,8 @@ webkit.org/b/258228 [ Sonoma+ Debug ] accessibility/mac/text-input-session-notif [ Release x86_64 ] http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource.html [ Skip ] [ Release x86_64 ] http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking.html [ Skip ] -webkit.org/b/273613 [ Ventura ] imported/w3c/web-platform-tests/css/css-view-transitions/no-painting-while-render-blocked.html [ Skip ] - webkit.org/b/275913 [ Debug ] imported/w3c/web-platform-tests/media-source/dedicated-worker/mediasource-worker-detach-element.html [ Pass Crash ] -# webkit.org/b/275928 (REGRESSION(280114@main): [ macOS wk2 ] 2 tests in css-view-transitions are constant failure -[ Ventura ] imported/w3c/web-platform-tests/css/css-view-transitions/input-targets-root-while-render-blocked.html [ Pass Failure ] -[ Ventura ] imported/w3c/web-platform-tests/css/css-view-transitions/no-raf-while-render-blocked.html [ Pass Failure ] - webkit.org/b/275873 storage/indexeddb/database-transaction-cycle.html [ Pass Failure ] webkit.org/b/276389 media/video-transformed.html [ Pass Failure ] @@ -1847,9 +1805,6 @@ fast/scrolling/mac/scrollbars/scrollbar-state.html [ Failure ] [ Sonoma+ Debug ] http/wpt/mediastream/mediastreamtrackprocessor-videoframe-timestamp.html [ Skip ] [ Sonoma+ Debug ] http/wpt/mediasession/voiceActivityDetection.html [ Skip ] -# webkit.org/b/279404 [ Ventura ] http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.https.html is a flaky failure -[ Ventura ] http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.https.html [ Pass Failure ] - # webkit.org/b/279477 REGRESSION (283102@main?): [macOS iOS wk2 Debug EWS ] ASSERTION FAILED: WebKit::WebPageProxy::startNetworkRequestsForPageLoadTiming(WebCore::FrameIdentifier) result of http/tests/site-isolation/window-open-with-name-cross-site.html to crash [ Debug ] http/tests/site-isolation/window-open-with-name-cross-site.html [ Skip ] @@ -1859,9 +1814,6 @@ editing/input/scroll-viewport-page-up-down.html [ Pass Failure ] # webkit.org/b/279463 Flaky ASSERTION FAILED: m_clients.contains(client) in VideoTrack::clearClient on imported/w3c/web-platform-tests/media-source/URL-createObjectURL.html [ Sonoma Debug arm64 ] imported/w3c/web-platform-tests/media-source/URL-createObjectURL.html [ Pass Crash ] -# webkit.org/b/280037 [ Ventura wk2 ] imported/w3c/web-platform-tests/pointerevents/pointerevent_lostpointercapture_remove_setcapture_node.html is a flaky failure -[ Ventura ] imported/w3c/web-platform-tests/pointerevents/pointerevent_lostpointercapture_remove_setcapture_node.html [ Pass Failure ] - # webkit.org/b/280413 [ macOS wk2 arm64 ] fast/forms/password-scrolled-after-caps-lock-toggled.html is a flaky failure [ arm64 ] fast/forms/password-scrolled-after-caps-lock-toggled.html [ Pass Failure ] @@ -1872,9 +1824,6 @@ editing/input/scroll-viewport-page-up-down.html [ Pass Failure ] [ Sequoia+ arm64 Release ] http/tests/resourceLoadStatistics/prune-statistics.html [ Pass Failure ] [ Sequoia+ arm64 Release ] http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-link-decoration.html [ Pass Failure ] -# webkit.org/b/280728 [ Ventura wk2 ] imported/w3c/web-platform-tests/screen-orientation/active-lock.html is a flaky failure. -[ Ventura ] imported/w3c/web-platform-tests/screen-orientation/active-lock.html [ Pass Failure ] - # webkit.org/b/280832 [ Sequoia wk2 ] http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html is a constant failure. [ Sequoia+ ] http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html [ Failure ] @@ -1912,9 +1861,6 @@ webkit.org/b/282726 http/tests/media/fairplay/legacy-fairplay-hls.html [ Failure [ Sequoia+ ] http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html [ Failure ] [ Sequoia+ ] http/tests/cookies/same-site/popup-cross-site-post.html [ Failure ] -# webkit.org/b/282665 [Ventura wk2] imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/setting-timeline.tentative.html is a flaky failure -[ Ventura ] imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/setting-timeline.tentative.html [ Pass Failure ] - # webkit.org/b/282126 NEW TEST [ Sequoia+ x86_64 ] 5 swipe layout tests are timing due to "Timed out waiting for notifyDone to be called" swipe/main-frame-pinning-requirement.html [ Failure Timeout ] @@ -1932,9 +1878,9 @@ webkit.org/b/284190 [ Sequoia+ ] imported/w3c/web-platform-tests/html/cross-orig webkit.org/b/284492 [ Sequoia+ ] imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.html [ Failure ] webkit.org/b/284492 [ Sequoia+ ] imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.worker.html [ Failure ] -webkit.org/b/232282 [ Ventura+ ] fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html [ Pass Failure ] +webkit.org/b/232282 fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html [ Pass Failure ] -webkit.org/b/285033 [ Ventura+ ] http/tests/download/sandboxed-iframe-download-not-allowed.html [ Pass Failure ] +webkit.org/b/285033 http/tests/download/sandboxed-iframe-download-not-allowed.html [ Pass Failure ] # webkit.org/b/288409 [ MacOS iOS ] 3x imported/w3c/web-platform-tests/navigation-api/navigation are consistent failures imported/w3c/web-platform-tests/navigation-api/navigation-activation/activation-traverse-not-in-entries.html [ Failure ] @@ -1942,8 +1888,8 @@ imported/w3c/web-platform-tests/navigation-api/navigation-methods/disambigaute-f imported/w3c/web-platform-tests/navigation-api/navigation-methods/disambigaute-traverseTo-forward-multiple.html [ Failure ] # webkit.org/b/280415 [ Sequoia wk2 release arm64 ] 2x fast/selectors/* are flaky image only failures. -[ Ventura+ arm64 ] fast/selectors/selection-window-inactive-stroke-color.html [ Pass ImageOnlyFailure ] -[ Ventura+ arm64 ] fast/selectors/text-field-selection-stroke-color.html [ Pass ImageOnlyFailure ] +[ arm64 ] fast/selectors/selection-window-inactive-stroke-color.html [ Pass ImageOnlyFailure ] +[ arm64 ] fast/selectors/text-field-selection-stroke-color.html [ Pass ImageOnlyFailure ] webkit.org/b/286371 [ Sequoia Release x86_64 ] webrtc/captureCanvas-webrtc-software-h264-high.html [ Failure ] @@ -1955,7 +1901,7 @@ webkit.org/b/287040 [ Sonoma arm64 ] fast/webgpu/ftoi.html [ Skip ] webkit.org/b/286653 [ Sequoia ] pdf/images/jpeg2000-embed-pdf.html [ Pass Failure ] -webkit.org/b/287122 [ Ventura+ ] imported/w3c/web-platform-tests/html/capability-delegation/delegate-fullscreen-request-subframe-same-origin.https.tentative.html [ Pass Failure ] +webkit.org/b/287122 imported/w3c/web-platform-tests/html/capability-delegation/delegate-fullscreen-request-subframe-same-origin.https.tentative.html [ Pass Failure ] # rdar://141631699 ([ macOS wk2 arm64 ] Multiple fast/webgpu/* tests are causing testing instability.) [ arm64 ] fast/webgpu/regression/repro_283595-for.html [ Skip ] @@ -1985,8 +1931,6 @@ webkit.org/b/287974 [ Sonoma Release arm64 ] imported/w3c/web-platform-tests/css webkit.org/b/287987 media/media-source/media-source-minimumupcomingpresentationtime.html [ Pass Failure ] -webkit.org/b/287990 [ Sonoma Release ] fast/canvas/webgl/drawingbuffer-test.html [ Pass Failure ] - webkit.org/b/288005 imported/w3c/web-platform-tests/css/selectors/invalidation/nth-last-child-in-shadow-root.html [ Pass ImageOnlyFailure ] webkit.org/b/288015 [ Sonoma+ Release ] media/media-source/media-managedmse-video-with-poster.html [ Pass ImageOnlyFailure ] @@ -2000,9 +1944,11 @@ webkit.org/b/288026 [ Sonoma+ Release ] imported/w3c/web-platform-tests/css/css- webkit.org/b/288006 http/tests/dom/noreferrer-window-not-targetable.html [ Failure ] # webkit.org/b/287679 REGRESSION(289499@main):[macOS Debug ] imported/w3c/web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html is flaky (failure in EWS) -[ Debug ] imported/w3c/web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html [ Pass Failure ] -[ Debug ] imported/w3c/web-platform-tests/screen-orientation/fullscreen-interactions.html [ Pass Failure ] -[ Debug ] imported/w3c/web-platform-tests/screen-orientation/lock-basic.html [ Pass Failure ] +imported/w3c/web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html [ Pass Failure ] +imported/w3c/web-platform-tests/screen-orientation/fullscreen-interactions.html [ Pass Failure ] +imported/w3c/web-platform-tests/screen-orientation/lock-basic.html [ Pass Failure ] +imported/w3c/web-platform-tests/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html [ Pass Failure ] +imported/w3c/web-platform-tests/screen-orientation/orientation-reading.html [ Pass Failure ] webkit.org/b/288025 http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html [ Pass Failure ] @@ -2014,9 +1960,12 @@ webkit.org/b/288043 [ Release ] inspector/canvas/create-context-bitmaprenderer.h webkit.org/b/288053 imported/w3c/web-platform-tests/fetch/http-cache/invalidate.any.serviceworker.html [ Pass Failure ] -webkit.org/b/288118 imported/w3c/web-platform-tests/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html [ Pass Failure ] -webkit.org/b/288118 imported/w3c/web-platform-tests/screen-orientation/orientation-reading.html [ Pass Failure ] - webkit.org/b/288119 imported/w3c/web-platform-tests/preload/preload-type-match.html [ Pass Failure ] webkit.org/b/288120 [ Sonoma+ Release ] fast/animation/request-animation-frame-throttling-lowPowerMode.html [ Pass Failure ] + +webkit.org/b/288404 [ Sonoma+ Release ] fast/text/canvas-color-fonts/stroke-gradient-COLR.html [ Pass ImageOnlyFailure ] + +webkit.org/b/287012 [ Sonoma+ Debug ] http/tests/pdf/linearized-pdf-in-iframe.html [ Pass Crash ] + +webkit.org/b/288411 [ Sequoia x86_64 ] imported/w3c/web-platform-tests/webrtc/simulcast/getStats.https.html [ Failure ] diff --git a/LayoutTests/platform/mac/TestExpectations b/LayoutTests/platform/mac/TestExpectations index 725d6b903dcfb..5578efbb40ae3 100644 --- a/LayoutTests/platform/mac/TestExpectations +++ b/LayoutTests/platform/mac/TestExpectations @@ -74,9 +74,6 @@ media/media-source/remoteplayback-from-source-element.html [ Pass ] # Individually failing tests should be marked in separate expectations. [ Sonoma+ ] imported/w3c/web-platform-tests/css/css-text/word-break/auto-phrase [ Pass ] -# Variable size packet is only supported on Sonoma and later. -[ Ventura ] media/media-webm-opus-variable-length.html [ Failure ] - #////////////////////////////////////////////////////////////////////////////////////////// # End platform-specific directories. #////////////////////////////////////////////////////////////////////////////////////////// @@ -208,8 +205,6 @@ fast/images/animated-webp-expected.html # This test is highly time dependent on when a MediaStream will start. Failure is expected some time, but should pass most of the time. http/wpt/mediarecorder/MediaRecorder-first-frame.html [ Pass Failure ] -# MediaRecorder Opus in MP4 is supported on Sonoma and later -[ Ventura ] http/wpt/mediarecorder/MediaRecorder-audio-bitrate-mp4-opus.html [ Failure ] # DRT does not support toggling caret browsing on / off editing/selection/caret-mode-paragraph-keys-navigation.html @@ -672,8 +667,6 @@ mathml/presentation/fenced-mi.html [ Pass ImageOnlyFailure ] # rdar://88981242 ([ Ventura ] media/accessibility-describes-video.html is a constant timeout) media/accessibility-describes-video.html [ Timeout ] -# rdar://92286809 ([ Ventura ] 4x editing/spelling (layout-tests) Are constant timeouts) - #rdar://92833592 ([ Ventura ] 4x imported/w3c/web-platform-tests/webrtc-encoded-transform/ are flaky text failures) imported/w3c/web-platform-tests/webrtc-encoded-transform/script-metadata-transform.https.html [ Pass Failure ] imported/w3c/web-platform-tests/webrtc-encoded-transform/script-transform.https.html [ Pass Failure ] @@ -744,7 +737,6 @@ webkit.org/b/161725 imported/w3c/web-platform-tests/media-source/mediasource-seq webkit.org/b/161725 imported/w3c/web-platform-tests/media-source/mediasource-sourcebuffer-mode-timestamps.html [ Skip ] webkit.org/b/161725 imported/w3c/web-platform-tests/media-source/mediasource-sourcebuffer-mode.html [ Skip ] webkit.org/b/214166 imported/w3c/web-platform-tests/media-source/idlharness.window.html [ Skip ] -webkit.org/b/263413 [ Ventura+ ] media/media-source/media-source-first-sample-pts-non-zero-canplay-without-renderer.html [ Timeout ] # Requires WebM imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html [ Skip ] @@ -1541,9 +1533,6 @@ webkit.org/b/209072 [ Debug ] http/tests/css/shared-stylesheet-mutation-preconst webkit.org/b/207150 platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html [ Pass Failure Timeout ] -# The line breaking rules changed in ICU 66. We've updated the tests to match, but old platforms won't get updated line breaking rules. -[ Ventura ] imported/w3c/web-platform-tests/css/css-text/line-breaking/line-breaking-023.html [ ImageOnlyFailure ] - webkit.org/b/207858 fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html [ Skip ] webkit.org/b/209619 compositing/clipping/border-radius-async-overflow-stacking.html [ Pass ImageOnlyFailure ] @@ -1840,7 +1829,7 @@ webkit.org/b/226050 imported/w3c/web-platform-tests/IndexedDB/blob-valid-before- webkit.org/b/231328 http/tests/preload/onload_event.html [ Pass Failure ] -webkit.org/b/271732 [ Ventura+ ] http/tests/workers/service/openwindow-from-notification-click.html [ Pass Failure Crash ] +webkit.org/b/271732 http/tests/workers/service/openwindow-from-notification-click.html [ Pass Failure Crash ] webkit.org/b/215335 [ Release ] webanimations/css-transition-retargeting-during-ready-promise.html [ Pass Failure ] @@ -2015,32 +2004,22 @@ imported/w3c/web-platform-tests/websockets/cookies/007.html?wss&wpt_flags=https #webkit.org/b/248537 Batch mark expectations for Ventura test failures imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-disabled-by-feature-policy.https.sub.html [ Pass Failure ] -imported/w3c/web-platform-tests/web-animations/interfaces/Animation/onremove.html [ Pass Failure ] -[ Ventura+ x86_64 ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html [ Pass Failure Timeout ] -[ Ventura+ x86_64 ] http/tests/media/now-playing-info.html [ Pass Failure ] -[ x86_64 ] animations/stop-animation-on-suspend.html [ Pass Failure ] -fast/images/animated-avif.html [ Pass ImageOnlyFailure Timeout Crash ] -[ Ventura+ ] animations/animation-events-not-cancelable.html [ Pass Failure ] -css3/scroll-snap/scroll-padding-mainframe-paging.html [ Pass Failure ] -css3/scroll-snap/scroll-padding-overflow-paging.html [ Pass Failure ] -[ Ventura+ ] fast/events/before-unload-navigate-different-window.html [ Pass Failure ] -http/tests/media/fairplay/fps-mse-unmuxed-key-rotation.html [ Pass Failure ] +animations/stop-animation-on-suspend.html [ Pass Failure ] +fast/images/animated-avif.html [ ImageOnlyFailure ] +http/tests/media/fairplay/fps-mse-unmuxed-key-rotation.html [ Failure ] [ x86_64 ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html [ Pass Failure Timeout ] -[ Ventura+ x86_64 ] imported/w3c/web-platform-tests/html/browsers/history/the-history-interface/history_go_undefined.html [ Pass Failure ] -[ x86_64 ] imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-security-check-failure.sub.html [ Pass Failure ] +[ Debug ] imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-security-check-failure.sub.html [ Pass Failure ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html [ Pass Failure ] -[ Ventura+ ] fast/text/synthetic-bold-transformed.html [ Pass ImageOnlyFailure ] -[ x86_64 ] js/promises-tests/promises-tests-2-3-3.html [ Pass Timeout ] -[ Ventura+ ] editing/execCommand/delete-non-editable-range-crash.html [ Pass Timeout ] +fast/text/synthetic-bold-transformed.html [ Pass ImageOnlyFailure ] +[ x86_64 Debug ] js/promises-tests/promises-tests-2-3-3.html [ Pass Timeout ] +[ Debug ] editing/execCommand/delete-non-editable-range-crash.html [ Pass Timeout ] webkit.org/b/254637 fast/text/web-font-load-invisible-during-loading.html [ Pass Failure ] webkit.org/b/242804 media/track/track-forced-subtitles-in-band.html [ Pass Failure ] -webkit.org/b/251099 [ Ventura+ ] fast/images/avif-image-document.html [ Pass Crash ] - -# AVIF overlay images are only supported on macOS and iOS post Ventura. -[ Ventura+ ] fast/images/image-overlay-mutiple-frames.html [ Pass ImageOnlyFailure ] +# FIXME: needs new bug +webkit.org/b/245099 fast/images/image-overlay-mutiple-frames.html [ ImageOnlyFailure ] http/wpt/service-workers/basic-fetch-with-contentfilter-allow-after-adding-data.html [ Pass ] http/wpt/service-workers/basic-fetch-with-contentfilter.https.html [ Pass ] @@ -2055,17 +2034,13 @@ webkit.org/b/254044 imported/w3c/web-platform-tests/feature-policy/reporting/xr- webkit.org/b/237415 webgl/1.0.x/conformance/rendering/clipping-wide-points.html [ Pass Failure ] -# webkit.org/b/255178 [ Ventura iOS arm64 ] 3X imported/w3c/web-platform-tests/css/css-color/parsing (layout-tests) are constant text failures -[ Ventura x86_64 ] imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-relative-color.html [ Failure ] - # color float value is rounded differently on x86 [ x86_64 ] imported/w3c/web-platform-tests/css/css-color/parsing/color-computed-color-mix-function.html [ Failure ] # webkit.org/b/255427 [ Ventura ] 4/13 batch mark expectations and branch bugs -[ Ventura+ arm64 ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audiobuffersource-connections.html [ Failure ] -[ Ventura+ arm64 ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections.html [ Failure ] -[ Ventura+ arm64 ] webaudio/ScriptProcessor/scriptprocessor-offlineaudiocontext.html [ Failure ] -[ Ventura+ x86_64 ] fast/shrink-wrap/rect-shrink-wrap.html [ Pass ImageOnlyFailure ] +[ arm64 ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audiobuffersource-connections.html [ Failure ] +[ arm64 ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections.html [ Failure ] +[ arm64 ] webaudio/ScriptProcessor/scriptprocessor-offlineaudiocontext.html [ Failure ] # webkit.org/b/275963 -- these tests have slight differences on x86_64 and arm64 # they've been re-baselined to pass on arm64, so we expect failure on x86_64 @@ -2073,8 +2048,6 @@ webkit.org/b/237415 webgl/1.0.x/conformance/rendering/clipping-wide-points.html [ x86_64 ] svg/W3C-SVG-1.1/metadata-example-01-b.svg [ Failure ] [ x86_64 ] svg/custom/use-on-symbol-inside-pattern.svg [ Failure ] -webkit.org/b/255788 [ Ventura+ Debug ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow.html [ Skip ] - webkit.org/b/256108 media/video-audio-session-mode.html [ Failure ] webkit.org/b/258181 [ Debug ] inspector/debugger/async-stack-trace-truncate.html [ Slow Failure ] @@ -2094,22 +2067,10 @@ webkit.org/b/259712 media/media-source/media-source-paint-after-display-none.htm webkit.org/b/259190 http/tests/images/heic-as-heif.html [ Pass ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] compositing/geometry/clipped-out-perspective.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] compositing/overlap-blending/opacity-and-infinity.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] imported/w3c/web-platform-tests/css/css-transforms/perspective-split-by-zero-w.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] imported/w3c/web-platform-tests/css/css-transforms/preserve3d-and-filter-with-perspective.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] imported/w3c/web-platform-tests/css/css-transforms/preserve3d-pseudo-element.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] imported/w3c/web-platform-tests/css/css-transforms/transform-table-009.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] imported/w3c/web-platform-tests/css/css-transforms/transform-table-010.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] imported/w3c/web-platform-tests/css/css-transforms/transform-table-011.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] imported/w3c/web-platform-tests/css/css-transforms/transform3d-preserve3d-011.html [ ImageOnlyFailure ] -webkit.org/b/260224 [ Ventura ] imported/w3c/web-platform-tests/css/css-transforms/transform3d-preserve3d-014.html [ ImageOnlyFailure ] - webkit.org/b/130490 media/video-remote-control-playpause.html [ Pass Timeout Crash ] -webkit.org/b/260529 [ Ventura+ x86_64 ] animations/suspend-resume-animation-events.html [ Pass Failure ] # rdar://102494267 ([ New Test ] (248203@main): [ Sonoma ] http/tests/media/hls/track-in-band-hls-metadata-cue-duration.html is a consistent failure) -[ Ventura+ ] http/tests/media/hls/track-in-band-hls-metadata-cue-duration.html [ Failure ] +http/tests/media/hls/track-in-band-hls-metadata-cue-duration.html [ Failure ] # rdar://100422705 ([ macOS iOS16 ] fast/text/system-font-fallb ack.html is a constant failure (245686)) @@ -2337,9 +2298,6 @@ imported/w3c/web-platform-tests/fetch/metadata/generated/element-meta-refresh.op imported/w3c/web-platform-tests/fetch/metadata/generated/form-submission.sub.html [ Skip ] imported/w3c/web-platform-tests/fetch/metadata/generated/window-location.sub.html [ Skip ] -[ Ventura ] imported/w3c/web-platform-tests/css/css-view-transitions/window-resize-aborts-transition.html [ Failure ] -[ Ventura ] imported/w3c/web-platform-tests/css/css-view-transitions/navigation/hide-before-reveal.html [ Failure ] - # rdar://129424261 (REGRESSION (279443@main): [ Sonoma Release ] WindowServer watchdog timeout on Intel machine) [ Release arm64 ] http/tests/webgpu/webgpu [ Skip ] @@ -2391,13 +2349,6 @@ imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/ [ Sequoia arm64 ] http/tests/media/fairplay/fps-mse-unmuxed-same-key.html [ Failure ] http/tests/media/fairplay/fps-mse-multi-key-renewal.html [ Pass Failure ] -# webkit.org/b/284075 Opus decoder isn't working with raw content (no magic cookie provided) -[ Ventura ] imported/w3c/web-platform-tests/webcodecs/audioDecoder-codec-specific.https.any.html?opus [ Skip ] -[ Ventura ] imported/w3c/web-platform-tests/webcodecs/audioDecoder-codec-specific.https.any.worker.html?opus [ Skip ] - -# Ventura doesn't support resampling when encoding to Opus, causing the test to fail. -[ Ventura ] imported/w3c/web-platform-tests/webcodecs/audio-encoder.https.any.html [ Failure ] - webkit.org/b/257011 imported/w3c/web-platform-tests/css/css-text/hyphens/hyphenate-character-002.html [ ImageOnlyFailure ] # webkit.org/b/280646 [macOS Debug EWS] media/video-webkit-playsinline.html is a flaky crash @@ -2419,7 +2370,7 @@ webanimations/scroll-timeline-clamped-current-time-while-rubber-banding-mac.html media/webkit-media-controls-not-visible-after-exiting-fullscreen.html [ Pass ] # Modern AVContentKeySession is only available on Sonoma -[ Ventura Sonoma ] http/tests/media/fairplay/legacy-fairplay-mse-muxed-nowait.html [ Skip ] +[ Sonoma ] http/tests/media/fairplay/legacy-fairplay-mse-muxed-nowait.html [ Skip ] # webkit.org/b/280304 [ Sequoia ] fast/ruby/ruby-expansion-cjk-4.html is a constant image only failure. [ Sequoia ] fast/ruby/ruby-expansion-cjk-4.html [ ImageOnlyFailure ] @@ -2433,11 +2384,11 @@ inspector/worker/console-basic-subworker.html [ Skip ] webkit.org/b/284082 [ Sequoia+ ] http/tests/media/fairplay/legacy-fairplay-mse-muxed-nowait.html [ Timeout Failure ] -webkit.org/b/284597 [ Ventura+ ] http/tests/misc/repeat-open-cancel.html [ Slow ] +webkit.org/b/284597 http/tests/misc/repeat-open-cancel.html [ Slow ] -webkit.org/b/284653 [ Ventura+ ] http/tests/site-isolation/compositing/iframes/resize-from-zero-size.html [ Pass Failure ] +webkit.org/b/284653 http/tests/site-isolation/compositing/iframes/resize-from-zero-size.html [ Pass Failure ] -webkit.org/b/285954 [ Ventura+ Debug ] inspector/worker/runtime-basic-subworker.html [ Pass Crash ] +webkit.org/b/285954 [ Debug ] inspector/worker/runtime-basic-subworker.html [ Pass Crash ] webkit.org/b/286039 imported/w3c/web-platform-tests/scroll-to-text-fragment/scroll-to-text-fragment.html [ Pass Failure ] @@ -2454,3 +2405,5 @@ imported/w3c/web-platform-tests/editing/other/insertparagraph-in-child-of-html.t imported/w3c/web-platform-tests/editing/other/insertparagraph-in-child-of-html.tentative.html?designMode=on&white-space=pre-wrap [ Pass Failure ] webkit.org/b/288133 imported/w3c/web-platform-tests/scroll-to-text-fragment/find-range-from-text-directive.html [ Pass Failure ] + +webkit.org/b/287990 [ Sonoma+ ] fast/canvas/webgl/drawingbuffer-test.html [ Pass Failure ] diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-dynamic-index-expected.png b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-dynamic-index-expected.png new file mode 100644 index 0000000000000..adbe7f0756e83 Binary files /dev/null and b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-dynamic-index-expected.png differ diff --git a/LayoutTests/platform/win/TestExpectations b/LayoutTests/platform/win/TestExpectations index 42a629ff394b9..28a2dec06089a 100644 --- a/LayoutTests/platform/win/TestExpectations +++ b/LayoutTests/platform/win/TestExpectations @@ -1082,6 +1082,10 @@ imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/layout-change imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/animation-with-animatable-interface.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/animation-with-display-none.html [ ImageOnlyFailure ] +imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/animation-with-transform.html [ ImageOnlyFailure ] +imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html [ ImageOnlyFailure ] +imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html [ ImageOnlyFailure ] + webkit.org/b/263870 imported/w3c/web-platform-tests/scroll-animations/css/animation-range-ignored.html [ Skip ] webkit.org/b/263870 imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/scroll-timeline-range.html [ Skip ] diff --git a/LayoutTests/platform/wk2/TestExpectations b/LayoutTests/platform/wk2/TestExpectations index 6875cff48b881..dbfc7cfe89746 100644 --- a/LayoutTests/platform/wk2/TestExpectations +++ b/LayoutTests/platform/wk2/TestExpectations @@ -810,3 +810,5 @@ webkit.org/b/286450 imported/w3c/web-platform-tests/webcodecs/audio-encoder.http webkit.org/b/287126 fast/forms/datalist/datalist-hide-using-escape-key.html [ Pass Timeout Failure ] webkit.org/b/287724 imported/w3c/web-platform-tests/feature-policy/reporting/picture-in-picture-reporting.html [ Pass Failure ] + +webkit.org/b/288422 imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-dynamic-index.html [ Failure ] diff --git a/LayoutTests/resources/document-leak-test.js b/LayoutTests/resources/document-leak-test.js index 1822f801f7a13..c51f47d0a3c4e 100644 --- a/LayoutTests/resources/document-leak-test.js +++ b/LayoutTests/resources/document-leak-test.js @@ -85,55 +85,3 @@ function runDocumentLeakTest(options) window.addEventListener("message", message => iframeSentMessage(message)); allFrames.forEach(iframe => iframe.src = options.frameURL); } - - -async function runDocumentLeakTestSynchronously(frameURL) -{ - for (var i = 0; i < 20; i++) { - createFrames(1); - allFrames[0].src = frameURL; - let result = await cleanIframeUponMessageReceived(); - if (result) { - testPassed("The iframe document didn't leak."); - finishJSTest(); - } - } - testFailed("All iframe documents leaked."); - finishJSTest(); -} - -function cleanIframeUponMessageReceived() -{ - return new Promise((resolve) => { - const listener = (message) => { - if (message.data === "testFailed") { - testFailed("Error loading the initial frameURL."); - return finishJSTest(); - } - let iframe = iframeForMessage(message); - let frameDocumentID = internals.documentIdentifier(iframe.contentWindow.document); - let checkCount = 0; - iframe.addEventListener("load", () => { - let handle = setInterval(() => { - gc(); - if (!internals.isDocumentAlive(frameDocumentID)) { - clearInterval(handle); - window.removeEventListener("message", listener); - resolve(true); - return; - } - - if (++checkCount > 5) { - clearInterval(handle); - window.removeEventListener("message", listener); - resolve(false); - return; - } - }, 10); - }, { once: true }); - iframe.src = "about:blank"; - } - window.addEventListener("message", listener); - }); -} - diff --git a/LayoutTests/storage/filesystemaccess/writable-file-stream-abort-expected.txt b/LayoutTests/storage/filesystemaccess/writable-file-stream-abort-expected.txt new file mode 100644 index 0000000000000..6c3b57e530442 --- /dev/null +++ b/LayoutTests/storage/filesystemaccess/writable-file-stream-abort-expected.txt @@ -0,0 +1,6 @@ + +PASS Validate stream gets errored in case of network process crash +PASS Validate stream gets errored in case of clearing storage +PASS Validate stream gets errored in case of network process crash in a worker +PASS Validate stream gets errored in case of clearing storage in a worker + diff --git a/LayoutTests/storage/filesystemaccess/writable-file-stream-abort.html b/LayoutTests/storage/filesystemaccess/writable-file-stream-abort.html new file mode 100644 index 0000000000000..b2f8157b82fbc --- /dev/null +++ b/LayoutTests/storage/filesystemaccess/writable-file-stream-abort.html @@ -0,0 +1,81 @@ + + + + + + + + + diff --git a/LayoutTests/webrtc/processIceTransportStateChange-gc.html b/LayoutTests/webrtc/processIceTransportStateChange-gc.html index 942d19ca58122..ef59609d017a6 100644 --- a/LayoutTests/webrtc/processIceTransportStateChange-gc.html +++ b/LayoutTests/webrtc/processIceTransportStateChange-gc.html @@ -39,6 +39,7 @@ const answer = await remote_connection.createAnswer(); await remote_connection.setLocalDescription(answer); + await local_connection.setRemoteDescription(answer); local_connection.sctp.transport.iceTransport.onstatechange = () => { iframe.remove(); diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt index cc6e955fa7970..1bc6c20a8f069 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt @@ -1040,7 +1040,7 @@ set(JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS runtime/FunctionRareData.h runtime/FuzzerAgent.h runtime/Gate.h - runtime/GenericArguments.h + runtime/GenericArgumentsImpl.h runtime/GenericOffset.h runtime/GenericTypedArrayView.h runtime/GenericTypedArrayViewInlines.h diff --git a/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj b/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj index 1f3bdecf12a1d..bf871fddabd99 100644 --- a/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj +++ b/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj @@ -550,8 +550,8 @@ 0FE050141AA9091100D33B33 /* ArgumentsMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE0500C1AA9091100D33B33 /* ArgumentsMode.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0FE050161AA9091100D33B33 /* DirectArgumentsOffset.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE0500E1AA9091100D33B33 /* DirectArgumentsOffset.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0FE050181AA9091100D33B33 /* DirectArguments.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE050101AA9091100D33B33 /* DirectArguments.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0FE050191AA9091100D33B33 /* GenericArguments.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE050111AA9091100D33B33 /* GenericArguments.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0FE0501A1AA9091100D33B33 /* GenericArgumentsInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE050121AA9091100D33B33 /* GenericArgumentsInlines.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0FE050191AA9091100D33B33 /* GenericArgumentsImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE050111AA9091100D33B33 /* GenericArgumentsImpl.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0FE0501A1AA9091100D33B33 /* GenericArgumentsImplInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE050121AA9091100D33B33 /* GenericArgumentsImplInlines.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0FE0501B1AA9091100D33B33 /* GenericOffset.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE050131AA9091100D33B33 /* GenericOffset.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0FE050261AA9095600D33B33 /* ClonedArguments.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE0501D1AA9095600D33B33 /* ClonedArguments.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0FE050281AA9095600D33B33 /* ScopedArguments.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE0501F1AA9095600D33B33 /* ScopedArguments.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -3387,8 +3387,8 @@ 0FE0500E1AA9091100D33B33 /* DirectArgumentsOffset.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectArgumentsOffset.h; sourceTree = ""; }; 0FE0500F1AA9091100D33B33 /* DirectArguments.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DirectArguments.cpp; sourceTree = ""; }; 0FE050101AA9091100D33B33 /* DirectArguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectArguments.h; sourceTree = ""; }; - 0FE050111AA9091100D33B33 /* GenericArguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericArguments.h; sourceTree = ""; }; - 0FE050121AA9091100D33B33 /* GenericArgumentsInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericArgumentsInlines.h; sourceTree = ""; }; + 0FE050111AA9091100D33B33 /* GenericArgumentsImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericArgumentsImpl.h; sourceTree = ""; }; + 0FE050121AA9091100D33B33 /* GenericArgumentsImplInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericArgumentsImplInlines.h; sourceTree = ""; }; 0FE050131AA9091100D33B33 /* GenericOffset.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericOffset.h; sourceTree = ""; }; 0FE0501C1AA9095600D33B33 /* ClonedArguments.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClonedArguments.cpp; sourceTree = ""; }; 0FE0501D1AA9095600D33B33 /* ClonedArguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClonedArguments.h; sourceTree = ""; }; @@ -8278,8 +8278,8 @@ 70B791891C024432002481E2 /* GeneratorPrototype.cpp */, 70B7918A1C024432002481E2 /* GeneratorPrototype.h */, 276B385D2A71D0B600252F4E /* GeneratorPrototypeInlines.h */, - 0FE050111AA9091100D33B33 /* GenericArguments.h */, - 0FE050121AA9091100D33B33 /* GenericArgumentsInlines.h */, + 0FE050111AA9091100D33B33 /* GenericArgumentsImpl.h */, + 0FE050121AA9091100D33B33 /* GenericArgumentsImplInlines.h */, 0FE050131AA9091100D33B33 /* GenericOffset.h */, 0F2B66B217B6B5AB00A7AE3F /* GenericTypedArrayView.h */, 0F2B66B317B6B5AB00A7AE3F /* GenericTypedArrayViewInlines.h */, @@ -11108,8 +11108,8 @@ 276B386B2A71D0B600252F4E /* GeneratorFunctionPrototypeInlines.h in Headers */, 70B791991C024A29002481E2 /* GeneratorPrototype.h in Headers */, 276B386C2A71D0B600252F4E /* GeneratorPrototypeInlines.h in Headers */, - 0FE050191AA9091100D33B33 /* GenericArguments.h in Headers */, - 0FE0501A1AA9091100D33B33 /* GenericArgumentsInlines.h in Headers */, + 0FE050191AA9091100D33B33 /* GenericArgumentsImpl.h in Headers */, + 0FE0501A1AA9091100D33B33 /* GenericArgumentsImplInlines.h in Headers */, 0FE0501B1AA9091100D33B33 /* GenericOffset.h in Headers */, 0F2B66E017B6B5AB00A7AE3F /* GenericTypedArrayView.h in Headers */, 0F2B66E117B6B5AB00A7AE3F /* GenericTypedArrayViewInlines.h in Headers */, diff --git a/Source/JavaScriptCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations b/Source/JavaScriptCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations index 530eb85ff914d..6320bc84531c9 100644 --- a/Source/JavaScriptCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations +++ b/Source/JavaScriptCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations @@ -69,7 +69,7 @@ runtime/Exception.cpp runtime/ExecutableBase.cpp runtime/FunctionExecutable.cpp runtime/FunctionRareData.cpp -runtime/GenericArgumentsInlines.h +runtime/GenericArgumentsImplInlines.h runtime/Identifier.cpp runtime/Identifier.h runtime/IdentifierInlines.h @@ -133,7 +133,6 @@ runtime/Symbol.cpp runtime/SymbolConstructor.cpp runtime/SymbolTable.cpp runtime/SyntheticModuleRecord.cpp -runtime/VM.cpp runtime/WeakMapImpl.cpp runtime/WriteBarrier.h tools/CellProfile.h @@ -161,4 +160,4 @@ wasm/js/JSWebAssemblyStruct.cpp wasm/js/JSWebAssemblyTable.cpp wasm/js/JSWebAssemblyTag.cpp wasm/js/WebAssemblyFunction.cpp -wasm/js/WebAssemblyModuleRecord.cpp \ No newline at end of file +wasm/js/WebAssemblyModuleRecord.cpp diff --git a/Source/JavaScriptCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations b/Source/JavaScriptCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations index 5c30d58d9dd75..33bc83387daa5 100644 --- a/Source/JavaScriptCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations +++ b/Source/JavaScriptCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations @@ -5,7 +5,6 @@ API/JSCallbackObjectFunctions.h API/JSClassRef.cpp API/JSContext.mm API/JSContextRef.cpp -API/JSLockRef.cpp API/JSObjectRef.cpp API/JSRetainPtr.h API/JSScript.mm @@ -75,7 +74,6 @@ heap/GCIncomingRefCountedSetInlines.h heap/Heap.cpp heap/IsoCellSetInlines.h heap/JITStubRoutineSet.cpp -heap/MarkedSpace.cpp heap/MarkingConstraintSolver.cpp heap/ParallelSourceAdapter.h heap/SlotVisitor.cpp @@ -145,11 +143,9 @@ runtime/JSArrayBuffer.cpp runtime/JSArrayBufferView.cpp runtime/JSCustomGetterFunction.cpp runtime/JSCustomSetterFunction.cpp -runtime/JSFinalizationRegistry.cpp runtime/JSGenericTypedArrayViewInlines.h runtime/JSGenericTypedArrayViewPrototypeFunctions.h runtime/JSGlobalObject.cpp -runtime/JSLock.cpp runtime/JSModuleEnvironment.cpp runtime/JSObject.cpp runtime/JSObjectInlines.h @@ -171,8 +167,6 @@ runtime/TemporalObject.cpp runtime/TypeProfiler.cpp runtime/TypeProfilerLog.cpp runtime/TypeSet.cpp -runtime/VM.cpp -runtime/VM.h runtime/VMTraps.cpp runtime/WaiterListManager.cpp runtime/Watchdog.cpp @@ -226,4 +220,4 @@ wasm/js/WebAssemblyFunction.h wasm/js/WebAssemblyGlobalPrototype.cpp wasm/js/WebAssemblyInstanceConstructor.cpp wasm/js/WebAssemblyModuleConstructor.cpp -wasm/js/WebAssemblyModuleRecord.cpp \ No newline at end of file +wasm/js/WebAssemblyModuleRecord.cpp diff --git a/Source/JavaScriptCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations b/Source/JavaScriptCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations index 0c053c703c8a5..8378578be4987 100644 --- a/Source/JavaScriptCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations +++ b/Source/JavaScriptCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations @@ -60,7 +60,6 @@ ftl/FTLOSRExitHandle.cpp ftl/FTLOperations.cpp ftl/FTLPatchpointExceptionHandle.cpp heap/ConservativeRoots.cpp -heap/Heap.cpp heap/HeapHelperPool.cpp heap/JITStubRoutineSet.cpp heap/MachineStackMarker.cpp @@ -118,7 +117,6 @@ runtime/StructureInlines.h runtime/SymbolConstructor.cpp runtime/SymbolTable.h runtime/TypeSet.cpp -runtime/VM.cpp runtime/VMEntryScope.cpp runtime/VMTraps.cpp runtime/WaiterListManager.h @@ -157,4 +155,4 @@ wasm/js/JSWebAssemblyHelpers.h wasm/js/JSWebAssemblyInstance.cpp wasm/js/JSWebAssemblyModule.cpp wasm/js/WasmToJS.cpp -wasm/js/WebAssemblyModuleRecord.cpp \ No newline at end of file +wasm/js/WebAssemblyModuleRecord.cpp diff --git a/Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp b/Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp index dfa23aae2c9e0..5128f6239f17f 100644 --- a/Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp +++ b/Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp @@ -38,7 +38,7 @@ #include "AirPhaseScope.h" #include "AirRegLiveness.h" #include "AirTmpMap.h" -#include "AirTmpWidth.h" +#include "AirTmpWidthInlines.h" #include "AirUseCounts.h" #include #include @@ -186,7 +186,7 @@ class LiveRange { return m_intervals; } - size_t size() + size_t size() const { return m_size; } @@ -476,6 +476,11 @@ class RegisterRange { } } + bool isEmpty() const + { + return m_allocations.empty(); + } + void dump(PrintStream& out) const { CommaPrinter comma; @@ -591,6 +596,8 @@ class GreedyAllocator { finalizeGroups(); finalizeGroups(); + dataLogLnIf(verbose(), "State before greedy register allocation:\n", *this); + allocateRegisters(); allocateRegisters(); @@ -603,9 +610,38 @@ class GreedyAllocator { fixSpillsAfterTerminals(m_code); } + void dump(PrintStream& out) const + { + out.println("RegRanges:"); + dumpRegRanges(out); + dumpRegRanges(out); + out.println("LiveRanges:"); + auto dumpRegTmpData = [&](Reg r) { + const TmpData& tmpData = m_map[Tmp(r)]; + if (tmpData.liveRange.size()) + out.println(" ", r, ": ", m_map[Tmp(r)]); + }; + for (Reg r : m_allowedRegistersInPriorityOrder[GP]) + dumpRegTmpData(r); + for (Reg r : m_allowedRegistersInPriorityOrder[FP]) + dumpRegTmpData(r); + m_code.forEachTmp([&](Tmp tmp) { + out.println(" ", tmp, ": ", m_map[tmp]); + }); + } + private: static constexpr Point pointsPerInst = 2; + template + void dumpRegRanges(PrintStream& out) const + { + for (Reg r : m_allowedRegistersInPriorityOrder[bank]) { + if (!m_regRanges[r].isEmpty()) + out.println(" ", r, ": ", m_regRanges[r]); + } + } + void buildRegisterSets() { forEachBank([&] (Bank bank) { @@ -1003,21 +1039,6 @@ class GreedyAllocator { ASSERT(!activeIntervals[tmp]); }); #endif - if (verbose()) { - dataLog("Intervals:\n"); - auto dumpRegTmpData = [&](Reg r) { - TmpData& tmpData = m_map[Tmp(r)]; - if (tmpData.liveRange.size()) - dataLog(" ", r, ": ", m_map[Tmp(r)], "\n"); - }; - for (Reg r : m_allowedRegistersInPriorityOrder[GP]) - dumpRegTmpData(r); - for (Reg r : m_allowedRegistersInPriorityOrder[FP]) - dumpRegTmpData(r); - m_code.forEachTmp([&](Tmp tmp) { - dataLog(" ", tmp, ": ", m_map[tmp], "\n"); - }); - } } template @@ -1208,12 +1229,6 @@ class GreedyAllocator { return tmp; } - void dumpRegRanges(Bank bank) - { - for (Reg r : m_allowedRegistersInPriorityOrder[bank]) - dataLogLn(" regRanges[", r, "]: ", m_regRanges[r]); - } - void setStageAndEnqueue(Tmp tmp, TmpData& tmpData, Stage stage) { ASSERT(!tmp.isReg()); @@ -1259,8 +1274,10 @@ class GreedyAllocator { ASSERT(tmp && tmp.bank() == bank); TmpData& tmpData = m_map[tmp]; if (verbose()) { - dataLogLn("Pop: ", entry, " tmp: ", tmpData); - dumpRegRanges(bank); + StringPrintStream out; + out.println("Pop: ", entry, " tmp: ", tmpData); + dumpRegRanges(out); + dataLog(out.toCString()); } if (tmpData.stage == Stage::Replaced) continue; // Tmp no longer relevant @@ -1881,16 +1898,7 @@ class GreedyAllocator { void assignRegisters() { CompilerTimingScope timingScope("Air"_s, "GreedyRegAlloc::assignRegisters"_s); - - if (verbose()) { - dataLog("About to assign registers. State of all tmps:\n"); - m_code.forEachTmp( - [&] (Tmp tmp) { - dataLog(" ", tmp, ": ", m_map[tmp], "\n"); - }); - dataLog("IR:\n"); - dataLog(m_code); - } + dataLogLnIf(verbose(), "Greedy register allocator about to assign registers:\n", *this, "IR:\n", m_code); for (BasicBlock* block : m_code) { for (Inst& inst : *block) { diff --git a/Source/JavaScriptCore/b3/air/AirTmpWidth.h b/Source/JavaScriptCore/b3/air/AirTmpWidth.h index 47b97011d6104..f1b77f55ce6f8 100644 --- a/Source/JavaScriptCore/b3/air/AirTmpWidth.h +++ b/Source/JavaScriptCore/b3/air/AirTmpWidth.h @@ -52,18 +52,10 @@ class TmpWidth { // // This doesn't tell you which of those properties holds, but you can query that using the other // methods. - Width width(Tmp tmp) const - { - Widths tmpWidths = widths(tmp); - return std::min(tmpWidths.use, tmpWidths.def); - } + inline Width width(Tmp) const; // Return the minimum required width for all defs/uses of this Tmp. - Width requiredWidth(Tmp tmp) - { - Widths tmpWidths = widths(tmp); - return std::max(tmpWidths.use, tmpWidths.def); - } + inline Width requiredWidth(Tmp); // This indirectly tells you how much of the tmp's high bits are guaranteed to be zero. The number of // high bits that are zero are: @@ -71,16 +63,10 @@ class TmpWidth { // TotalBits - defWidth(tmp) // // Where TotalBits are the total number of bits in the register, so 64 on a 64-bit system. - Width defWidth(Tmp tmp) const - { - return widths(tmp).def; - } + inline Width defWidth(Tmp) const; // This tells you how much of Tmp is going to be read. - Width useWidth(Tmp tmp) const - { - return widths(tmp).use; - } + inline Width useWidth(Tmp) const; void setWidths(Tmp, Width useWidth, Width defWidth); @@ -107,16 +93,8 @@ class TmpWidth { }; inline Widths& widths(Tmp); - - const Widths& widths(Tmp tmp) const - { - return const_cast(this)->widths(tmp); - } - - void addWidths(Tmp tmp, Widths tmpWidths) - { - widths(tmp) = tmpWidths; - } + inline const Widths& widths(Tmp) const; + inline void addWidths(Tmp, Widths); Vector& widthsVector(Bank bank) { diff --git a/Source/JavaScriptCore/b3/air/AirTmpWidthInlines.h b/Source/JavaScriptCore/b3/air/AirTmpWidthInlines.h index 4faba37f83e3d..f1eb503cb62dc 100644 --- a/Source/JavaScriptCore/b3/air/AirTmpWidthInlines.h +++ b/Source/JavaScriptCore/b3/air/AirTmpWidthInlines.h @@ -44,6 +44,38 @@ inline TmpWidth::Widths& TmpWidth::widths(Tmp tmp) return m_widthFP[index]; } +const TmpWidth::Widths& TmpWidth::widths(Tmp tmp) const +{ + return const_cast(this)->widths(tmp); +} + +Width TmpWidth::width(Tmp tmp) const +{ + Widths tmpWidths = widths(tmp); + return std::min(tmpWidths.use, tmpWidths.def); +} + +void TmpWidth::addWidths(Tmp tmp, Widths tmpWidths) +{ + widths(tmp) = tmpWidths; +} + +Width TmpWidth::requiredWidth(Tmp tmp) +{ + Widths tmpWidths = widths(tmp); + return std::max(tmpWidths.use, tmpWidths.def); +} + +Width TmpWidth::defWidth(Tmp tmp) const +{ + return widths(tmp).def; +} + +Width TmpWidth::useWidth(Tmp tmp) const +{ + return widths(tmp).use; +} + } } } // namespace JSC::B3::Air #endif // ENABLE(B3_JIT) diff --git a/Source/JavaScriptCore/builtins/ArrayPrototype.js b/Source/JavaScriptCore/builtins/ArrayPrototype.js index f7e77db9acf42..7618310f7b6aa 100644 --- a/Source/JavaScriptCore/builtins/ArrayPrototype.js +++ b/Source/JavaScriptCore/builtins/ArrayPrototype.js @@ -273,40 +273,6 @@ function findLastIndex(callback /*, thisArg */) return -1; } -function includes(searchElement /*, fromIndex*/) -{ - "use strict"; - - var array = @toObject(this, "Array.prototype.includes requires that |this| not be null or undefined"); - var length = @toLength(array.length); - - if (length === 0) - return false; - - var fromIndex = 0; - var from = @argument(1); - if (from !== @undefined) - fromIndex = @toIntegerOrInfinity(from); - - var index; - if (fromIndex >= 0) - index = fromIndex; - else - index = length + fromIndex; - - if (index < 0) - index = 0; - - var currentElement; - for (; index < length; ++index) { - currentElement = array[index]; - // Use SameValueZero comparison, rather than just StrictEquals. - if (searchElement === currentElement || (searchElement !== searchElement && currentElement !== currentElement)) - return true; - } - return false; -} - @linkTimeConstant function maxWithPositives(a, b) { diff --git a/Source/JavaScriptCore/builtins/BuiltinNames.h b/Source/JavaScriptCore/builtins/BuiltinNames.h index 288bf208d2fe9..a69dd9e9cd97c 100644 --- a/Source/JavaScriptCore/builtins/BuiltinNames.h +++ b/Source/JavaScriptCore/builtins/BuiltinNames.h @@ -220,6 +220,7 @@ namespace JSC { macro(regExpStringIteratorCreate) \ macro(iteratorHelperCreate) \ macro(syncIterator) \ + macro(includes) \ namespace Symbols { diff --git a/Source/JavaScriptCore/builtins/JSIteratorPrototype.js b/Source/JavaScriptCore/builtins/JSIteratorPrototype.js index d3bb67d5657e8..113612a26be25 100644 --- a/Source/JavaScriptCore/builtins/JSIteratorPrototype.js +++ b/Source/JavaScriptCore/builtins/JSIteratorPrototype.js @@ -32,8 +32,10 @@ function map(mapper) if (!@isObject(this)) @throwTypeError("Iterator.prototype.map requires that |this| be an Object."); - if (!@isCallable(mapper)) + if (!@isCallable(mapper)) { + @iteratorGenericClose(this); @throwTypeError("Iterator.prototype.map callback must be a function."); + } var iterated = this; var iteratedNextMethod = iterated.next; @@ -63,8 +65,10 @@ function filter(predicate) if (!@isObject(this)) @throwTypeError("Iterator.prototype.filter requires that |this| be an Object."); - if (!@isCallable(predicate)) + if (!@isCallable(predicate)) { + @iteratorGenericClose(this); @throwTypeError("Iterator.prototype.filter callback must be a function."); + } var iterated = this; var iteratedNextMethod = iterated.next; @@ -94,13 +98,18 @@ function take(limit) if (!@isObject(this)) @throwTypeError("Iterator.prototype.take requires that |this| be an Object."); - var numLimit = @toNumber(limit); - if (numLimit !== numLimit) + var numLimit; + @ifAbruptCloseIterator(this, numLimit = @toNumber(limit)); + if (numLimit !== numLimit) { + @iteratorGenericClose(this); @throwRangeError("Iterator.prototype.take argument must not be NaN."); + } var intLimit = @toIntegerOrInfinity(numLimit); - if (intLimit < 0) + if (intLimit < 0) { + @iteratorGenericClose(this); @throwRangeError("Iterator.prototype.take argument must be non-negative."); + } var iterated = this; var iteratedNextMethod = iterated.next; @@ -138,13 +147,18 @@ function drop(limit) if (!@isObject(this)) @throwTypeError("Iterator.prototype.drop requires that |this| be an Object."); - var numLimit = @toNumber(limit); - if (numLimit !== numLimit) + var numLimit; + @ifAbruptCloseIterator(this, (numLimit = @toNumber(limit))); + if (numLimit !== numLimit) { + @iteratorGenericClose(this); @throwRangeError("Iterator.prototype.drop argument must not be NaN."); + } var intLimit = @toIntegerOrInfinity(numLimit); - if (intLimit < 0) + if (intLimit < 0) { + @iteratorGenericClose(this); @throwRangeError("Iterator.prototype.drop argument must be non-negative."); + } var iterated = this; var iteratedNextMethod = iterated.next; @@ -179,8 +193,10 @@ function flatMap(mapper) if (!@isObject(this)) @throwTypeError("Iterator.prototype.flatMap requires that |this| be an Object."); - if (!@isCallable(mapper)) + if (!@isCallable(mapper)) { + @iteratorGenericClose(this); @throwTypeError("Iterator.prototype.flatMap callback must be a function."); + } var iterated = this; var iteratedNextMethod = iterated.next; @@ -212,12 +228,14 @@ function some(predicate) if (!@isObject(this)) @throwTypeError("Iterator.prototype.some requires that |this| be an Object."); - if (!@isCallable(predicate)) + if (!@isCallable(predicate)) { + @iteratorGenericClose(this); @throwTypeError("Iterator.prototype.some callback must be a function."); + } + var iterated = this; var count = 0; - var iterator = this; - var wrapper = { @@iterator: function () { return iterator; }}; + var wrapper = { @@iterator: function () { return iterated; }}; for (var item of wrapper) { if (predicate(item, count++)) return true; @@ -234,12 +252,14 @@ function every(predicate) if (!@isObject(this)) @throwTypeError("Iterator.prototype.every requires that |this| be an Object."); - if (!@isCallable(predicate)) + if (!@isCallable(predicate)) { + @iteratorGenericClose(this); @throwTypeError("Iterator.prototype.every callback must be a function."); + } + var iterated = this; var count = 0; - var iterator = this; - var wrapper = { @@iterator: function () { return iterator; }}; + var wrapper = { @@iterator: function () { return iterated; }}; for (var item of wrapper) { if (!predicate(item, count++)) return false; @@ -256,12 +276,14 @@ function find(predicate) if (!@isObject(this)) @throwTypeError("Iterator.prototype.find requires that |this| be an Object."); - if (!@isCallable(predicate)) + if (!@isCallable(predicate)) { + @iteratorGenericClose(this); @throwTypeError("Iterator.prototype.find callback must be a function."); + } + var iterated = this; var count = 0; - var iterator = this; - var wrapper = { @@iterator: function () { return iterator; }}; + var wrapper = { @@iterator: function () { return iterated; }}; for (var item of wrapper) { if (predicate(item, count++)) return item; @@ -278,12 +300,14 @@ function reduce(reducer /*, initialValue */) if (!@isObject(this)) @throwTypeError("Iterator.prototype.reduce requires that |this| be an Object."); - if (!@isCallable(reducer)) + if (!@isCallable(reducer)) { + @iteratorGenericClose(this); @throwTypeError("Iterator.prototype.reduce reducer argument must be a function."); + } + var iterated = this; var initialValue = @argument(1); - var iterated = this; var iteratedNextMethod = this.next; var accumulator; diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.cpp b/Source/JavaScriptCore/bytecode/CodeBlock.cpp index 3a603db74a51d..8f668d4a04cb1 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.cpp +++ b/Source/JavaScriptCore/bytecode/CodeBlock.cpp @@ -3490,6 +3490,17 @@ CodePtr CodeBlock::addressForCallConcurrently(const ConcurrentJSL return m_jitCode->addressForCall(arityCheck); } +unsigned CodeBlock::bytecodeCost() const +{ +#if ENABLE(FTL_JIT) + if (jitType() == JITType::FTLJIT) { + if (auto* jitCode = static_cast(m_jitCode.get())) + return std::min(static_cast(jitCode->numberOfCompiledDFGNodes() * Options::ratioFTLNodesToBytecodeCost()), m_bytecodeCost); + } +#endif + return m_bytecodeCost; +} + bool CodeBlock::hasInstalledVMTrapsBreakpoints() const { #if ENABLE(SIGNAL_BASED_VM_TRAPS) diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.h b/Source/JavaScriptCore/bytecode/CodeBlock.h index d96aa7513b826..1cba56293536e 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.h +++ b/Source/JavaScriptCore/bytecode/CodeBlock.h @@ -306,7 +306,7 @@ class CodeBlock : public JSCell { size_t predictedMachineCodeSize(); unsigned instructionsSize() const { return instructions().size(); } - unsigned bytecodeCost() const { return m_bytecodeCost; } + unsigned bytecodeCost() const; // Exactly equivalent to codeBlock->ownerExecutable()->newReplacementCodeBlockFor(codeBlock->specializationKind()) CodeBlock* newReplacement(); diff --git a/Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp b/Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp index 31ee5b3feff5f..517798ec2aac0 100644 --- a/Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp +++ b/Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp @@ -2238,7 +2238,7 @@ void InlineCacheCompiler::generateWithGuard(unsigned index, AccessCase& accessCa CRASH(); } - jit.purifyNaN(m_scratchFPR); + jit.purifyNaN(m_scratchFPR, m_scratchFPR); jit.boxDouble(m_scratchFPR, valueRegs); } } diff --git a/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h b/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h index d3950f30a79aa..2de0151744921 100644 --- a/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h +++ b/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h @@ -2946,6 +2946,10 @@ bool AbstractInterpreter::executeEffects(unsigned clobberLimi makeBytecodeTopForNode(node); break; + case ArrayIncludes: + setNonCellTypeForNode(node, SpecBoolean); + break; + case ArrayIndexOf: { setNonCellTypeForNode(node, SpecInt32Only); break; diff --git a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp index a10991851cec1..25df3adb82f83 100644 --- a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp +++ b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp @@ -1684,6 +1684,10 @@ std::tuple ByteCodeParser::inliningCost(CallVariant c return { UINT_MAX, InlineAttribute::None }; } + CodeBlock* targetCodeBlock = executable->codeBlockFor(specializationKind); + if (!m_graph.m_plan.isFTL()) + targetCodeBlock = codeBlock; + if (codeBlock->couldBeTainted() != m_codeBlock->couldBeTainted()) { VERBOSE_LOG(" Failing because taintedness of callee does not match the caller"); return { UINT_MAX, InlineAttribute::None }; @@ -1696,14 +1700,14 @@ std::tuple ByteCodeParser::inliningCost(CallVariant c } } - CapabilityLevel capabilityLevel = inlineFunctionForCapabilityLevel(m_graph.m_plan.jitType(), codeBlock, specializationKind, callee.isClosureCall()); + CapabilityLevel capabilityLevel = inlineFunctionForCapabilityLevel(m_graph.m_plan.jitType(), targetCodeBlock, specializationKind, callee.isClosureCall()); VERBOSE_LOG(" Call mode: ", callMode, "\n"); VERBOSE_LOG(" Is closure call: ", callee.isClosureCall(), "\n"); VERBOSE_LOG(" Capability level: ", capabilityLevel, "\n"); - VERBOSE_LOG(" Might inline function: ", mightInlineFunctionFor(m_graph.m_plan.jitType(), codeBlock, specializationKind), "\n"); - VERBOSE_LOG(" Might compile function: ", mightCompileFunctionFor(codeBlock, specializationKind), "\n"); - VERBOSE_LOG(" Is supported for inlining: ", isSupportedForInlining(codeBlock), "\n"); - VERBOSE_LOG(" Is inlining candidate: ", codeBlock->ownerExecutable()->isInliningCandidate(), "\n"); + VERBOSE_LOG(" Might inline function: ", mightInlineFunctionFor(m_graph.m_plan.jitType(), targetCodeBlock, specializationKind), "\n"); + VERBOSE_LOG(" Might compile function: ", mightCompileFunctionFor(targetCodeBlock, specializationKind), "\n"); + VERBOSE_LOG(" Is supported for inlining: ", isSupportedForInlining(targetCodeBlock), "\n"); + VERBOSE_LOG(" Is inlining candidate: ", targetCodeBlock->ownerExecutable()->isInliningCandidate(), "\n"); if (!canInline(capabilityLevel)) { VERBOSE_LOG(" Failing because the function is not inlineable.\n"); return { UINT_MAX, InlineAttribute::None }; @@ -1753,7 +1757,7 @@ std::tuple ByteCodeParser::inliningCost(CallVariant c VERBOSE_LOG(" Inlining should be possible.\n"); // It might be possible to inline. - return { codeBlock->bytecodeCost(), codeBlock->ownerExecutable()->inlineAttribute() }; + return { targetCodeBlock->bytecodeCost(), codeBlock->ownerExecutable()->inlineAttribute() }; } template @@ -2745,6 +2749,7 @@ auto ByteCodeParser::handleIntrinsicCall(Node* callee, Operand resultOperand, Ca return CallOptimizationResult::Inlined; } + case ArrayIncludesIntrinsic: case ArrayIndexOfIntrinsic: { if (argumentCountIncludingThis < 2) return CallOptimizationResult::DidNothing; @@ -2788,7 +2793,9 @@ auto ByteCodeParser::handleIntrinsicCall(Node* callee, Operand resultOperand, Ca addVarArgChild(get(virtualRegisterForArgumentIncludingThis(2, registerOffset))); // Start index. addVarArgChild(nullptr); - Node* node = addToGraph(Node::VarArg, ArrayIndexOf, OpInfo(arrayMode.asWord()), OpInfo()); + Node* node = intrinsic == ArrayIncludesIntrinsic + ? addToGraph(Node::VarArg, ArrayIncludes, OpInfo(arrayMode.asWord()), OpInfo()) + : addToGraph(Node::VarArg, ArrayIndexOf, OpInfo(arrayMode.asWord()), OpInfo()); setResult(node); return CallOptimizationResult::Inlined; } diff --git a/Source/JavaScriptCore/dfg/DFGClobberize.h b/Source/JavaScriptCore/dfg/DFGClobberize.h index 9cb8940efcdb6..68eb72af95a87 100644 --- a/Source/JavaScriptCore/dfg/DFGClobberize.h +++ b/Source/JavaScriptCore/dfg/DFGClobberize.h @@ -167,6 +167,7 @@ void clobberize(Graph& graph, Node* node, const ReadFunctor& read, const WriteFu case ArrayifyToStructure: case ArrayPush: case ArrayPop: + case ArrayIncludes: case ArrayIndexOf: case HasIndexedProperty: case AtomicsAdd: @@ -684,6 +685,7 @@ void clobberize(Graph& graph, Node* node, const ReadFunctor& read, const WriteFu write(HeapObjectCount); return; + case ArrayIncludes: case ArrayIndexOf: { // FIXME: Should support a CSE rule. // https://bugs.webkit.org/show_bug.cgi?id=173173 diff --git a/Source/JavaScriptCore/dfg/DFGCodeOriginPool.cpp b/Source/JavaScriptCore/dfg/DFGCodeOriginPool.cpp index fff86e2c4b97a..7aa6d3eb95eb8 100644 --- a/Source/JavaScriptCore/dfg/DFGCodeOriginPool.cpp +++ b/Source/JavaScriptCore/dfg/DFGCodeOriginPool.cpp @@ -30,6 +30,12 @@ namespace JSC { namespace DFG { +CodeOriginPool::CodeOriginPool() +{ + // Ensure that CallSiteIndex 0 => non-inlined-function BytecodeIndex(0). + addCodeOrigin(CodeOrigin(BytecodeIndex(0))); +} + CallSiteIndex CodeOriginPool::addCodeOrigin(CodeOrigin codeOrigin) { if (m_codeOrigins.isEmpty() diff --git a/Source/JavaScriptCore/dfg/DFGCodeOriginPool.h b/Source/JavaScriptCore/dfg/DFGCodeOriginPool.h index 31c77a7f25c01..184d3f590cd67 100644 --- a/Source/JavaScriptCore/dfg/DFGCodeOriginPool.h +++ b/Source/JavaScriptCore/dfg/DFGCodeOriginPool.h @@ -51,6 +51,8 @@ class CodeOriginPool : public ThreadSafeRefCounted { unsigned size() const { return m_codeOrigins.size(); } private: + CodeOriginPool(); + Vector m_codeOrigins; Vector m_callSiteIndexFreeList; }; diff --git a/Source/JavaScriptCore/dfg/DFGDoesGC.cpp b/Source/JavaScriptCore/dfg/DFGDoesGC.cpp index 2fe7e4b0a0435..1f755e8f41736 100644 --- a/Source/JavaScriptCore/dfg/DFGDoesGC.cpp +++ b/Source/JavaScriptCore/dfg/DFGDoesGC.cpp @@ -447,6 +447,7 @@ bool doesGC(Graph& graph, Node* node) case CallDOMGetter: case CallDOM: case ArraySlice: + case ArrayIncludes: case ArrayIndexOf: case ParseInt: // We might resolve a rope even though we don't clobber anything. case SetAdd: diff --git a/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp b/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp index 3b0be759f0751..0de5cb15a2930 100644 --- a/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp +++ b/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp @@ -1623,8 +1623,9 @@ class FixupPhase : public Phase { break; } + case ArrayIncludes: case ArrayIndexOf: - fixupArrayIndexOf(node); + fixupArrayIndexOfOrArrayIncludes(node); break; case RegExpExec: @@ -4862,12 +4863,19 @@ class FixupPhase : public Phase { fixup(node->child3(), 1); } - void fixupArrayIndexOf(Node* node) + void fixupArrayIndexOfOrArrayIncludes(Node* node) { + ASSERT(node->op() == ArrayIndexOf || node->op() == ArrayIncludes); + + bool isArrayIncludes = node->op() == ArrayIncludes; + Edge& array = m_graph.varArgChild(node, 0); Edge& storage = m_graph.varArgChild(node, node->numChildren() == 3 ? 2 : 3); blessArrayOperation(array, Edge(), storage); - ASSERT_WITH_MESSAGE(storage.node(), "blessArrayOperation for ArrayIndexOf must set Butterfly for storage edge."); + if (isArrayIncludes) + ASSERT_WITH_MESSAGE(storage.node(), "blessArrayOperation for ArrayIncludes must set Butterfly for storage edge."); + else + ASSERT_WITH_MESSAGE(storage.node(), "blessArrayOperation for ArrayIndexOf must set Butterfly for storage edge."); Edge& searchElement = m_graph.varArgChild(node, 1); @@ -4884,15 +4892,21 @@ class FixupPhase : public Phase { if (searchElement->shouldSpeculateCell()) { fixEdge(searchElement); m_insertionSet.insertCheck(m_graph, m_indexInBlock, node); - m_graph.convertToConstant(node, jsNumber(-1)); + if (isArrayIncludes) + m_graph.convertToConstant(node, jsBoolean(false)); + else + m_graph.convertToConstant(node, jsNumber(-1)); observeUseKindOnNode(searchElementNode); return; } - if (searchElement->shouldSpeculateOther()) { + if (searchElement->shouldSpeculateOther() && !isArrayIncludes) { fixEdge(searchElement); m_insertionSet.insertCheck(m_graph, m_indexInBlock, node); - m_graph.convertToConstant(node, jsNumber(-1)); + if (isArrayIncludes) + m_graph.convertToConstant(node, jsBoolean(false)); + else + m_graph.convertToConstant(node, jsNumber(-1)); observeUseKindOnNode(searchElementNode); return; } @@ -4900,7 +4914,10 @@ class FixupPhase : public Phase { if (searchElement->shouldSpeculateBoolean()) { fixEdge(searchElement); m_insertionSet.insertCheck(m_graph, m_indexInBlock, node); - m_graph.convertToConstant(node, jsNumber(-1)); + if (isArrayIncludes) + m_graph.convertToConstant(node, jsBoolean(false)); + else + m_graph.convertToConstant(node, jsNumber(-1)); observeUseKindOnNode(searchElementNode); return; } diff --git a/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp b/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp index cadde84ce9108..7fae331083ac7 100644 --- a/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp +++ b/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp @@ -372,11 +372,6 @@ void JITCompiler::disassemble(LinkBuffer& linkBuffer) m_disassembler->reportToProfiler(m_graph.m_plan.compilation(), linkBuffer); } -void JITCompiler::exceptionJumpWithCallFrameRollback() -{ - jumpThunk(CodeLocationLabel(vm().getCTIStub(CommonJITThunkID::HandleExceptionWithCallFrameRollback).retaggedCode())); -} - #if USE(JSVALUE32_64) void* JITCompiler::addressOfDoubleConstant(Node* node) { diff --git a/Source/JavaScriptCore/dfg/DFGJITCompiler.h b/Source/JavaScriptCore/dfg/DFGJITCompiler.h index a0b4c22bc2844..450e6768aa7fa 100644 --- a/Source/JavaScriptCore/dfg/DFGJITCompiler.h +++ b/Source/JavaScriptCore/dfg/DFGJITCompiler.h @@ -167,8 +167,6 @@ class JITCompiler : public CCallHelpers { call(address, OperationPtrTag); } - void exceptionJumpWithCallFrameRollback(); - OSRExitCompilationInfo& appendExitInfo(MacroAssembler::JumpList jumpsToFail = MacroAssembler::JumpList()) { OSRExitCompilationInfo info; diff --git a/Source/JavaScriptCore/dfg/DFGNode.h b/Source/JavaScriptCore/dfg/DFGNode.h index ff15c21074c12..c72320bcf619f 100644 --- a/Source/JavaScriptCore/dfg/DFGNode.h +++ b/Source/JavaScriptCore/dfg/DFGNode.h @@ -2231,6 +2231,7 @@ struct Node { case GetTypedArrayLengthAsInt52: case HasIndexedProperty: case EnumeratorNextUpdateIndexAndMode: + case ArrayIncludes: case ArrayIndexOf: return true; default: @@ -2576,6 +2577,7 @@ struct Node { case ArrayifyToStructure: case ArrayPush: case ArrayPop: + case ArrayIncludes: case ArrayIndexOf: case HasIndexedProperty: case AtomicsAdd: diff --git a/Source/JavaScriptCore/dfg/DFGNodeType.h b/Source/JavaScriptCore/dfg/DFGNodeType.h index 3bbc995c7354f..73b7f7bf4b188 100644 --- a/Source/JavaScriptCore/dfg/DFGNodeType.h +++ b/Source/JavaScriptCore/dfg/DFGNodeType.h @@ -334,6 +334,7 @@ namespace JSC { namespace DFG { macro(ArrayPush, NodeResultJS | NodeMustGenerate | NodeHasVarArgs) \ macro(ArrayPop, NodeResultJS | NodeMustGenerate) \ macro(ArraySlice, NodeResultJS | NodeMustGenerate | NodeHasVarArgs) \ + macro(ArrayIncludes, NodeResultBoolean | NodeHasVarArgs) \ macro(ArrayIndexOf, NodeResultInt32 | NodeHasVarArgs) \ macro(ArraySplice, NodeResultJS | NodeMustGenerate | NodeHasVarArgs) \ \ diff --git a/Source/JavaScriptCore/dfg/DFGOSRExit.cpp b/Source/JavaScriptCore/dfg/DFGOSRExit.cpp index 64c3851f971d8..f5cc9a3138dcb 100644 --- a/Source/JavaScriptCore/dfg/DFGOSRExit.cpp +++ b/Source/JavaScriptCore/dfg/DFGOSRExit.cpp @@ -644,7 +644,7 @@ void OSRExit::compileExit(CCallHelpers& jit, VM& vm, const OSRExit& exit, const case UnboxedDoubleInFPR: jit.move(AssemblyHelpers::TrustedImmPtr(scratch + index), GPRInfo::regT1); jit.loadDouble(MacroAssembler::Address(GPRInfo::regT1), FPRInfo::fpRegT0); - jit.purifyNaN(FPRInfo::fpRegT0); + jit.purifyNaN(FPRInfo::fpRegT0, FPRInfo::fpRegT0); #if USE(JSVALUE64) jit.boxDouble(FPRInfo::fpRegT0, GPRInfo::regT0); jit.store64(GPRInfo::regT0, MacroAssembler::Address(GPRInfo::regT1)); @@ -656,7 +656,7 @@ void OSRExit::compileExit(CCallHelpers& jit, VM& vm, const OSRExit& exit, const case DoubleDisplacedInJSStack: jit.move(AssemblyHelpers::TrustedImmPtr(scratch + index), GPRInfo::regT1); jit.loadDouble(AssemblyHelpers::addressFor(recovery.virtualRegister()), FPRInfo::fpRegT0); - jit.purifyNaN(FPRInfo::fpRegT0); + jit.purifyNaN(FPRInfo::fpRegT0, FPRInfo::fpRegT0); #if USE(JSVALUE64) jit.boxDouble(FPRInfo::fpRegT0, GPRInfo::regT0); jit.store64(GPRInfo::regT0, MacroAssembler::Address(GPRInfo::regT1)); diff --git a/Source/JavaScriptCore/dfg/DFGOperations.cpp b/Source/JavaScriptCore/dfg/DFGOperations.cpp index 5616b149f2c6d..cc1e22cf8086b 100644 --- a/Source/JavaScriptCore/dfg/DFGOperations.cpp +++ b/Source/JavaScriptCore/dfg/DFGOperations.cpp @@ -3706,6 +3706,131 @@ JSC_DEFINE_JIT_OPERATION(operationToLengthUntyped, EncodedJSValue, (JSGlobalObje OPERATION_RETURN(scope, JSValue::encode(jsNumber(value.toLength(globalObject)))); } +static ALWAYS_INLINE UCPUStrictInt32 arrayIncludesString(JSGlobalObject* globalObject, Butterfly* butterfly, JSString* searchElement, int32_t index) +{ + VM& vm = globalObject->vm(); + auto scope = DECLARE_THROW_SCOPE(vm); + + int32_t length = butterfly->publicLength(); + auto data = butterfly->contiguous().data(); + for (; index < length; ++index) { + JSValue value = data[index].get(); + if (!value || !value.isString()) + continue; + auto* string = asString(value); + if (string == searchElement) + return toUCPUStrictInt32(1); + if (string->equalInline(globalObject, searchElement)) { + scope.assertNoExceptionExceptTermination(); + return toUCPUStrictInt32(1); + } + RETURN_IF_EXCEPTION(scope, { }); + } + return toUCPUStrictInt32(0); +} + +JSC_DEFINE_JIT_OPERATION(operationArrayIncludesString, UCPUStrictInt32, (JSGlobalObject* globalObject, Butterfly* butterfly, JSString* searchElement, int32_t index)) +{ + VM& vm = globalObject->vm(); + CallFrame* callFrame = DECLARE_CALL_FRAME(vm); + JITOperationPrologueCallFrameTracer tracer(vm, callFrame); + auto scope = DECLARE_THROW_SCOPE(vm); + + OPERATION_RETURN(scope, arrayIncludesString(globalObject, butterfly, searchElement, index)); +} + +JSC_DEFINE_JIT_OPERATION(operationArrayIncludesValueInt32OrContiguous, UCPUStrictInt32, (JSGlobalObject* globalObject, Butterfly* butterfly, EncodedJSValue encodedValue, int32_t index)) +{ + VM& vm = globalObject->vm(); + CallFrame* callFrame = DECLARE_CALL_FRAME(vm); + JITOperationPrologueCallFrameTracer tracer(vm, callFrame); + auto scope = DECLARE_THROW_SCOPE(vm); + + JSValue searchElement = JSValue::decode(encodedValue); + + if (searchElement.isString()) + OPERATION_RETURN(scope, arrayIncludesString(globalObject, butterfly, asString(searchElement), index)); + + int32_t length = butterfly->publicLength(); + auto data = butterfly->contiguous().data(); + + if (index >= length) + OPERATION_RETURN(scope, toUCPUStrictInt32(0)); + + if (searchElement.isObject()) { + auto* result = std::bit_cast*>(WTF::find64(std::bit_cast(data + index), encodedValue, length - index)); + if (result) + OPERATION_RETURN(scope, toUCPUStrictInt32(1)); + OPERATION_RETURN(scope, toUCPUStrictInt32(0)); + } + + if (searchElement.isInt32()) { + for (; index < length; ++index) { + JSValue value = data[index].get(); + if (!value || !value.isNumber()) + continue; + if (searchElement.asInt32() == value.asNumber()) + OPERATION_RETURN(scope, toUCPUStrictInt32(1)); + } + OPERATION_RETURN(scope, toUCPUStrictInt32(0)); + } + + bool searchElementIsUndefined = searchElement.isUndefined(); + for (; index < length; ++index) { + JSValue value = data[index].get(); + if (!value) { + if (searchElementIsUndefined) + OPERATION_RETURN(scope, 1); + continue; + } + bool isEqual = sameValueZero(globalObject, searchElement, value); + OPERATION_RETURN_IF_EXCEPTION(scope, 0); + if (isEqual) + OPERATION_RETURN(scope, toUCPUStrictInt32(1)); + } + OPERATION_RETURN(scope, toUCPUStrictInt32(0)); +} + +JSC_DEFINE_NOEXCEPT_JIT_OPERATION(operationArrayIncludesValueDouble, UCPUStrictInt32, (Butterfly* butterfly, EncodedJSValue encodedValue, int32_t index)) +{ + // We do not cause any exceptions, thus we do not need FrameTracers. + JSValue searchElement = JSValue::decode(encodedValue); + const double* data = butterfly->contiguousDouble().data(); + int32_t length = butterfly->publicLength(); + + if (searchElement.isUndefined() && containsHole(data, length)) + return toUCPUStrictInt32(1); + if (!searchElement.isNumber()) + return toUCPUStrictInt32(0); + + double number = searchElement.asNumber(); + for (; index < length; ++index) { + // This comparison ignores NaN. + if (data[index] == number) + return toUCPUStrictInt32(1); + } + return toUCPUStrictInt32(0); +} + +JSC_DEFINE_NOEXCEPT_JIT_OPERATION(operationArrayIncludesNonStringIdentityValueContiguous, UCPUStrictInt32, (Butterfly* butterfly, EncodedJSValue searchElement, int32_t index)) +{ + // We do not cause any exceptions, thus we do not need FrameTracers. + int32_t length = butterfly->publicLength(); + auto data = butterfly->contiguous().data(); + + if (index >= length) + return toUCPUStrictInt32(0); + + auto* result = std::bit_cast*>(WTF::find64(std::bit_cast(data + index), searchElement, length - index)); + if (result) + return toUCPUStrictInt32(1); + + JSValue searchElementValue = JSValue::decode(searchElement); + if (searchElementValue.isUndefined() && containsHole(data, length)) + return toUCPUStrictInt32(1); + return toUCPUStrictInt32(0); +} + static ALWAYS_INLINE UCPUStrictInt32 arrayIndexOfString(JSGlobalObject* globalObject, Butterfly* butterfly, JSString* searchElement, int32_t index) { VM& vm = globalObject->vm(); @@ -3764,6 +3889,17 @@ JSC_DEFINE_JIT_OPERATION(operationArrayIndexOfValueInt32OrContiguous, UCPUStrict OPERATION_RETURN(scope, toUCPUStrictInt32(-1)); } + if (searchElement.isInt32()) { + for (; index < length; ++index) { + JSValue value = data[index].get(); + if (!value || !value.isNumber()) + continue; + if (searchElement.asInt32() == value.asNumber()) + OPERATION_RETURN(scope, toUCPUStrictInt32(index)); + } + OPERATION_RETURN(scope, toUCPUStrictInt32(-1)); + } + for (; index < length; ++index) { JSValue value = data[index].get(); if (!value) diff --git a/Source/JavaScriptCore/dfg/DFGOperations.h b/Source/JavaScriptCore/dfg/DFGOperations.h index 882ed29be1a19..db15d0d5687c6 100644 --- a/Source/JavaScriptCore/dfg/DFGOperations.h +++ b/Source/JavaScriptCore/dfg/DFGOperations.h @@ -368,6 +368,11 @@ JSC_DECLARE_JIT_OPERATION(operationThrowStaticError, void, (JSGlobalObject*, JSS JSC_DECLARE_JIT_OPERATION(operationHasOwnProperty, size_t, (JSGlobalObject*, JSObject*, EncodedJSValue)); +JSC_DECLARE_JIT_OPERATION(operationArrayIncludesString, UCPUStrictInt32, (JSGlobalObject*, Butterfly*, JSString*, int32_t)); +JSC_DECLARE_NOEXCEPT_JIT_OPERATION(operationArrayIncludesValueDouble, UCPUStrictInt32, (Butterfly*, EncodedJSValue, int32_t)); +JSC_DECLARE_JIT_OPERATION(operationArrayIncludesValueInt32OrContiguous, UCPUStrictInt32, (JSGlobalObject*, Butterfly*, EncodedJSValue, int32_t)); +JSC_DECLARE_NOEXCEPT_JIT_OPERATION(operationArrayIncludesNonStringIdentityValueContiguous, UCPUStrictInt32, (Butterfly*, EncodedJSValue, int32_t)); + JSC_DECLARE_JIT_OPERATION(operationArrayIndexOfString, UCPUStrictInt32, (JSGlobalObject*, Butterfly*, JSString*, int32_t)); JSC_DECLARE_NOEXCEPT_JIT_OPERATION(operationArrayIndexOfValueDouble, UCPUStrictInt32, (Butterfly*, EncodedJSValue, int32_t)); JSC_DECLARE_JIT_OPERATION(operationArrayIndexOfValueInt32OrContiguous, UCPUStrictInt32, (JSGlobalObject*, Butterfly*, EncodedJSValue, int32_t)); diff --git a/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp b/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp index af6511d1110b1..7a5390dbc6eb9 100644 --- a/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp +++ b/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp @@ -1144,6 +1144,11 @@ class PredictionPropagationPhase : public Phase { break; } + case ArrayIncludes: { + setPrediction(SpecBoolean); + break; + } + case GetTypedArrayByteOffset: case GetArrayLength: case GetUndetachedTypeArrayLength: diff --git a/Source/JavaScriptCore/dfg/DFGSafeToExecute.h b/Source/JavaScriptCore/dfg/DFGSafeToExecute.h index c75f3587be170..069c4948ce7b8 100644 --- a/Source/JavaScriptCore/dfg/DFGSafeToExecute.h +++ b/Source/JavaScriptCore/dfg/DFGSafeToExecute.h @@ -350,6 +350,7 @@ bool safeToExecute(AbstractStateType& state, Graph& graph, Node* node, bool igno return state.forNode(node->child1()).isType(SpecObject); case ArraySlice: + case ArrayIncludes: case ArrayIndexOf: { // You could plausibly move this code around as long as you proved the // incoming array base structure is an original array at the hoisted location. diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp index 4d0dfa8be20e2..9c958a17fd456 100644 --- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp +++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp @@ -157,15 +157,7 @@ void SpeculativeJIT::compile() // // Generate the stack overflow handling; if the stack check in the entry head fails, // we need to call out to a helper function to throw the StackOverflowError. - stackOverflow.link(this); - - emitStoreCodeOrigin(CodeOrigin(BytecodeIndex(0))); - - if (maxFrameExtentForSlowPathCall) - addPtr(TrustedImm32(-static_cast(maxFrameExtentForSlowPathCall)), stackPointerRegister); - - emitGetFromCallFrameHeaderPtr(CallFrameSlot::codeBlock, GPRInfo::argumentGPR0); - callThrowOperationWithCallFrameRollback(operationThrowStackOverflowError, GPRInfo::argumentGPR0); + stackOverflow.linkThunk(CodeLocationLabel(vm().getCTIStub(CommonJITThunkID::ThrowStackOverflowAtPrologue).retaggedCode()), this); // Generate slow path code. runSlowPathGenerators(m_pcToCodeOriginMapBuilder); @@ -268,14 +260,7 @@ void SpeculativeJIT::compileFunction() stackOverflowWithEntry.link(this); compileEntry(); stackOverflow.link(this); - - emitStoreCodeOrigin(CodeOrigin(BytecodeIndex(0))); - - if (maxFrameExtentForSlowPathCall) - addPtr(TrustedImm32(-static_cast(maxFrameExtentForSlowPathCall)), stackPointerRegister); - - emitGetFromCallFrameHeaderPtr(CallFrameSlot::codeBlock, GPRInfo::argumentGPR0); - callThrowOperationWithCallFrameRollback(operationThrowStackOverflowError, GPRInfo::argumentGPR0); + jumpThunk(CodeLocationLabel(vm().getCTIStub(CommonJITThunkID::ThrowStackOverflowAtPrologue).retaggedCode())); // Generate slow path code. runSlowPathGenerators(m_pcToCodeOriginMapBuilder); @@ -3105,12 +3090,17 @@ void SpeculativeJIT::compileValueRep(Node* node) // anymore. Unfortunately, this would be unsound. If it's a GetLocal or if the value was // subject to a prior SetLocal, filtering the value would imply that the corresponding // local was purified. - if (m_state.forNode(node->child1()).couldBeType(SpecDoubleImpureNaN)) - purifyNaN(valueFPR); + if (m_state.forNode(node->child1()).couldBeType(SpecDoubleImpureNaN)) { + FPRTemporary temp(this); + FPRReg tempFPR = temp.fpr(); - boxDouble(valueFPR, resultRegs); - - jsValueResult(resultRegs, node); + purifyNaN(valueFPR, tempFPR); + boxDouble(tempFPR, resultRegs); + jsValueResult(resultRegs, node); + } else { + boxDouble(valueFPR, resultRegs); + jsValueResult(resultRegs, node); + } return; } @@ -3712,7 +3702,7 @@ void SpeculativeJIT::compileGetByValOnFloatTypedArray(Node* node, TypedArrayType } if (format == DataFormatJS) { - purifyNaN(resultReg); + purifyNaN(resultReg, resultReg); boxDouble(resultReg, resultRegs); if (jump.isSet()) jump.link(this); @@ -6769,8 +6759,7 @@ void SpeculativeJIT::compilePurifyNaN(Node* node) FPRReg valueFPR = value.fpr(); FPRReg resultFPR = result.fpr(); - moveDouble(valueFPR, resultFPR); - purifyNaN(resultFPR); + purifyNaN(valueFPR, resultFPR); doubleResult(resultFPR, node); } @@ -9476,9 +9465,11 @@ void SpeculativeJIT::compileArraySplice(Node* node) jsValueResult(resultRegs, node); } -void SpeculativeJIT::compileArrayIndexOf(Node* node) +void SpeculativeJIT::compileArrayIndexOfOrArrayIncludes(Node* node) { - ASSERT(node->op() == ArrayIndexOf); + ASSERT(node->op() == ArrayIndexOf || node->op() == ArrayIncludes); + + bool isArrayIncludes = node->op() == ArrayIncludes; StorageOperand storage(this, m_graph.varArgChild(node, node->numChildren() == 3 ? 2 : 3)); GPRTemporary index(this); @@ -9514,10 +9505,20 @@ void SpeculativeJIT::compileArrayIndexOf(Node* node) add32(TrustedImm32(1), indexGPR); jump().linkTo(loop, this); - notFound.link(this); - move(TrustedImm32(-1), indexGPR); - found.link(this); - strictInt32Result(indexGPR, node); + if (isArrayIncludes) { + notFound.link(this); + move(TrustedImm32(0), indexGPR); + Jump done = jump(); + found.link(this); + move(TrustedImm32(1), indexGPR); + done.link(this); + unblessedBooleanResult(indexGPR, node); + } else { + notFound.link(this); + move(TrustedImm32(-1), indexGPR); + found.link(this); + strictInt32Result(indexGPR, node); + } }; ASSERT(node->arrayMode().type() == Array::Int32); @@ -9569,10 +9570,20 @@ void SpeculativeJIT::compileArrayIndexOf(Node* node) add32(TrustedImm32(1), indexGPR); jump().linkTo(loop, this); - notFound.link(this); - move(TrustedImm32(-1), indexGPR); - found.link(this); - strictInt32Result(indexGPR, node); + if (isArrayIncludes) { + notFound.link(this); + move(TrustedImm32(0), indexGPR); + Jump done = jump(); + found.link(this); + move(TrustedImm32(1), indexGPR); + done.link(this); + unblessedBooleanResult(indexGPR, node); + } else { + notFound.link(this); + move(TrustedImm32(-1), indexGPR); + found.link(this); + strictInt32Result(indexGPR, node); + } return; } @@ -9587,9 +9598,13 @@ void SpeculativeJIT::compileArrayIndexOf(Node* node) flushRegisters(); - callOperation(operationArrayIndexOfString, lengthGPR, LinkableConstant::globalObject(*this, node), storageGPR, searchElementGPR, indexGPR); - - strictInt32Result(lengthGPR, node); + if (isArrayIncludes) { + callOperation(operationArrayIncludesString, lengthGPR, LinkableConstant::globalObject(*this, node), storageGPR, searchElementGPR, indexGPR); + unblessedBooleanResult(lengthGPR, node); + } else { + callOperation(operationArrayIndexOfString, lengthGPR, LinkableConstant::globalObject(*this, node), storageGPR, searchElementGPR, indexGPR); + strictInt32Result(lengthGPR, node); + } return; #else @@ -9634,10 +9649,18 @@ void SpeculativeJIT::compileArrayIndexOf(Node* node) add32(TrustedImm32(1), indexGPR); jump().linkTo(loop, this); - notFound.link(this); - move(TrustedImm32(-1), indexGPR); - - found.link(this); + if (isArrayIncludes) { + notFound.link(this); + move(TrustedImm32(0), indexGPR); + Jump done = jump(); + found.link(this); + move(TrustedImm32(1), indexGPR); + done.link(this); + } else { + notFound.link(this); + move(TrustedImm32(-1), indexGPR); + found.link(this); + } }; auto emitCompare = [&]() -> JumpList { @@ -9692,13 +9715,21 @@ void SpeculativeJIT::compileArrayIndexOf(Node* node) emitLoop(emitCompare); - addSlowPathGenerator(slowPathCall( - slowCase, this, operationArrayIndexOfString, - indexGPR, LinkableConstant::globalObject(*this, node), - storageGPR, searchElementGPR, indexGPR - )); - - strictInt32Result(indexGPR, node); + if (isArrayIncludes) { + addSlowPathGenerator(slowPathCall( + slowCase, this, operationArrayIncludesString, + indexGPR, LinkableConstant::globalObject(*this, node), + storageGPR, searchElementGPR, indexGPR + )); + unblessedBooleanResult(indexGPR, node); + } else { + addSlowPathGenerator(slowPathCall( + slowCase, this, operationArrayIndexOfString, + indexGPR, LinkableConstant::globalObject(*this, node), + storageGPR, searchElementGPR, indexGPR + )); + strictInt32Result(indexGPR, node); + } return; #endif @@ -9715,8 +9746,13 @@ void SpeculativeJIT::compileArrayIndexOf(Node* node) ASSERT(node->arrayMode().type() == Array::Contiguous); flushRegisters(); - callOperationWithoutExceptionCheck(operationArrayIndexOfNonStringIdentityValueContiguous, lengthGPR, storageGPR, valueRegs, indexGPR); - strictInt32Result(lengthGPR, node); + if (isArrayIncludes) { + callOperationWithoutExceptionCheck(operationArrayIncludesNonStringIdentityValueContiguous, lengthGPR, storageGPR, valueRegs, indexGPR); + unblessedBooleanResult(lengthGPR, node); + } else { + callOperationWithoutExceptionCheck(operationArrayIndexOfNonStringIdentityValueContiguous, lengthGPR, storageGPR, valueRegs, indexGPR); + strictInt32Result(lengthGPR, node); + } return; } @@ -9728,18 +9764,27 @@ void SpeculativeJIT::compileArrayIndexOf(Node* node) flushRegisters(); switch (node->arrayMode().type()) { case Array::Double: - callOperation(operationArrayIndexOfValueDouble, lengthGPR, storageGPR, searchElementRegs, indexGPR); + if (isArrayIncludes) + callOperation(operationArrayIncludesValueDouble, lengthGPR, storageGPR, searchElementRegs, indexGPR); + else + callOperation(operationArrayIndexOfValueDouble, lengthGPR, storageGPR, searchElementRegs, indexGPR); break; case Array::Int32: case Array::Contiguous: - callOperation(operationArrayIndexOfValueInt32OrContiguous, lengthGPR, LinkableConstant::globalObject(*this, node), storageGPR, searchElementRegs, indexGPR); + if (isArrayIncludes) + callOperation(operationArrayIncludesValueInt32OrContiguous, lengthGPR, LinkableConstant::globalObject(*this, node), storageGPR, searchElementRegs, indexGPR); + else + callOperation(operationArrayIndexOfValueInt32OrContiguous, lengthGPR, LinkableConstant::globalObject(*this, node), storageGPR, searchElementRegs, indexGPR); break; default: RELEASE_ASSERT_NOT_REACHED(); break; } - strictInt32Result(lengthGPR, node); + if (isArrayIncludes) + unblessedBooleanResult(lengthGPR, node); + else + strictInt32Result(lengthGPR, node); return; } diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h index 62b5187681cd0..9db9f057b1e87 100644 --- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h +++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h @@ -1190,14 +1190,6 @@ class SpeculativeJIT : public JITCompiler { return call; } - JITCompiler::Call callThrowOperationWithCallFrameRollback(V_JITOperation_Cb operation, GPRReg codeBlockGPR) - { - setupArguments(codeBlockGPR); - JITCompiler::Call call = appendCall(operation); - exceptionJumpWithCallFrameRollback(); - return call; - } - void prepareForExternalCall() { #if !defined(NDEBUG) && !CPU(ARM_THUMB2) @@ -1686,7 +1678,7 @@ class SpeculativeJIT : public JITCompiler { void compileGetRestLength(Node*); void compileArraySlice(Node*); void compileArraySplice(Node*); - void compileArrayIndexOf(Node*); + void compileArrayIndexOfOrArrayIncludes(Node*); void compileArrayPush(Node*); void compileNotifyWrite(Node*); void compileRegExpExec(Node*); diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp index e74f25b5cf3f8..d807d6c91cd8d 100644 --- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp +++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp @@ -2932,8 +2932,9 @@ void SpeculativeJIT::compile(Node* node) break; } + case ArrayIncludes: case ArrayIndexOf: { - compileArrayIndexOf(node); + compileArrayIndexOfOrArrayIncludes(node); break; } diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp index a3c7bc88a3980..cab6e82492629 100644 --- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp +++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp @@ -4154,8 +4154,9 @@ void SpeculativeJIT::compile(Node* node) break; } + case ArrayIncludes: case ArrayIndexOf: { - compileArrayIndexOf(node); + compileArrayIndexOfOrArrayIncludes(node); break; } diff --git a/Source/JavaScriptCore/ftl/FTLCapabilities.cpp b/Source/JavaScriptCore/ftl/FTLCapabilities.cpp index 94b1463827e89..ffdeaf2a714fc 100644 --- a/Source/JavaScriptCore/ftl/FTLCapabilities.cpp +++ b/Source/JavaScriptCore/ftl/FTLCapabilities.cpp @@ -422,6 +422,7 @@ inline CapabilityLevel canCompile(Node* node) case CallDOMGetter: case ArraySlice: case ArraySplice: + case ArrayIncludes: case ArrayIndexOf: case ArrayPop: case ArrayPush: diff --git a/Source/JavaScriptCore/ftl/FTLCompile.cpp b/Source/JavaScriptCore/ftl/FTLCompile.cpp index 9fc10628e218c..d81e8054caccc 100644 --- a/Source/JavaScriptCore/ftl/FTLCompile.cpp +++ b/Source/JavaScriptCore/ftl/FTLCompile.cpp @@ -172,10 +172,7 @@ void compile(State& state, Safepoint::Result& safepointResult) stackOverflowWithEntry.link(&jit); jit.emitFunctionPrologue(); - jit.move(CCallHelpers::TrustedImmPtr(codeBlock), GPRInfo::argumentGPR0); - jit.storePtr(GPRInfo::callFrameRegister, &vm.topCallFrame); - jit.callOperation(operationThrowStackOverflowError); - jit.jumpThunk(CodeLocationLabel(vm.getCTIStub(CommonJITThunkID::HandleExceptionWithCallFrameRollback).retaggedCode())); + jit.jumpThunk(CodeLocationLabel(vm.getCTIStub(CommonJITThunkID::ThrowStackOverflowAtPrologue).retaggedCode())); mainPathJumps.linkTo(mainPathLabel, &jit); } break; diff --git a/Source/JavaScriptCore/ftl/FTLJITCode.cpp b/Source/JavaScriptCore/ftl/FTLJITCode.cpp index b3f3ee8f0616b..c63b3f8477199 100644 --- a/Source/JavaScriptCore/ftl/FTLJITCode.cpp +++ b/Source/JavaScriptCore/ftl/FTLJITCode.cpp @@ -111,7 +111,7 @@ size_t JITCode::size() { // We don't know the size of FTL code, yet. Make a wild guess. This is mostly used for // GC load estimates. - return 1000; + return m_size; } bool JITCode::contains(void*) diff --git a/Source/JavaScriptCore/ftl/FTLJITCode.h b/Source/JavaScriptCore/ftl/FTLJITCode.h index f2ac5b570295b..1ff361f8a81e2 100644 --- a/Source/JavaScriptCore/ftl/FTLJITCode.h +++ b/Source/JavaScriptCore/ftl/FTLJITCode.h @@ -49,6 +49,7 @@ class JITCode : public JSC::JITCode { void* dataAddressAtOffset(size_t offset) override; unsigned offsetOf(void* pointerIntoCode) override; size_t size() override; + void setSize(size_t size) { m_size = size; } bool contains(void*) override; void initializeB3Code(CodeRef); @@ -75,6 +76,12 @@ class JITCode : public JSC::JITCode { PCToCodeOriginMap* pcToCodeOriginMap() override { return common.m_pcToCodeOriginMap.get(); } const RegisterAtOffsetList* calleeSaveRegisters() const { return &m_calleeSaveRegisters; } + + unsigned numberOfCompiledDFGNodes() const { return m_numberOfCompiledDFGNodes; } + void setNumberOfCompiledDFGNodes(unsigned numberOfCompiledDFGNodes) + { + m_numberOfCompiledDFGNodes = numberOfCompiledDFGNodes; + } DFG::CommonData common; Vector m_osrExit; @@ -86,6 +93,8 @@ class JITCode : public JSC::JITCode { CodeRef m_b3Code; std::unique_ptr m_b3Byproducts; CodePtr m_addressForArityCheck; + size_t m_size { 1000 }; + unsigned m_numberOfCompiledDFGNodes { 0 }; }; } } // namespace JSC::FTL diff --git a/Source/JavaScriptCore/ftl/FTLJITFinalizer.cpp b/Source/JavaScriptCore/ftl/FTLJITFinalizer.cpp index c275f83aeacc0..d9e69a34e9253 100644 --- a/Source/JavaScriptCore/ftl/FTLJITFinalizer.cpp +++ b/Source/JavaScriptCore/ftl/FTLJITFinalizer.cpp @@ -59,9 +59,17 @@ bool JITFinalizer::finalize() m_plan.runMainThreadFinalizationTasks(); CodeBlock* codeBlock = m_plan.codeBlock(); - + m_jitCode->setSize(m_codeSize); codeBlock->setJITCode(*m_jitCode); + if (UNLIKELY(Options::dumpFTLCodeSize())) { + auto* baselineCodeBlock = codeBlock->baselineAlternative(); + size_t baselineCodeSize = 0; + if (auto jitCode = baselineCodeBlock->jitCode()) + baselineCodeSize = jitCode->size(); + dataLogLn("FTL: codeSize:(", m_jitCode->size(), "),nodes:(", m_jitCode->numberOfCompiledDFGNodes(), "),baselineCodeSize:(", baselineCodeSize, "),bytecodeCost:(", baselineCodeBlock->bytecodeCost(), ")"); + } + if (UNLIKELY(m_plan.compilation())) vm.m_perBytecodeProfiler->addCompilation(codeBlock, *m_plan.compilation()); diff --git a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp index 1f68be8b05a80..ba6091b4b66ed 100644 --- a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp +++ b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp @@ -287,7 +287,6 @@ class LowerDFGToB3 { // Stack Overflow Check. unsigned exitFrameSize = m_graph.requiredRegisterCountForExit() * sizeof(Register); PatchpointValue* stackOverflowHandler = m_out.patchpoint(Void); - CallSiteIndex callSiteIndex = callSiteIndexForCodeOrigin(m_ftlState, CodeOrigin(BytecodeIndex(0))); stackOverflowHandler->appendSomeRegister(m_callFrame); stackOverflowHandler->appendSomeRegister(m_vmValue); stackOverflowHandler->clobber(RegisterSetBuilder::macroClobberedGPRs()); @@ -318,26 +317,7 @@ class LowerDFGToB3 { // get clobbered. // https://bugs.webkit.org/show_bug.cgi?id=172456 jit.emitRestore(params.proc().calleeSaveRegisterAtOffsetList()); - - jit.store32( - MacroAssembler::TrustedImm32(callSiteIndex.bits()), - CCallHelpers::tagFor(CallFrameSlot::argumentCountIncludingThis)); - jit.copyCalleeSavesToEntryFrameCalleeSavesBuffer(vm->topEntryFrame, GPRInfo::argumentGPR0); - - jit.move(CCallHelpers::TrustedImmPtr(jit.codeBlock()), GPRInfo::argumentGPR0); - jit.prepareCallOperation(*vm); - CCallHelpers::Call throwCall = jit.call(OperationPtrTag); - - jit.move(CCallHelpers::TrustedImmPtr(vm), GPRInfo::argumentGPR0); - jit.prepareCallOperation(*vm); - CCallHelpers::Call lookupExceptionHandlerCall = jit.call(OperationPtrTag); - jit.jumpToExceptionHandler(*vm); - - jit.addLinkTask( - [=] (LinkBuffer& linkBuffer) { - linkBuffer.link(throwCall, operationThrowStackOverflowError); - linkBuffer.link(lookupExceptionHandlerCall, operationLookupExceptionHandlerFromCallerFrame); - }); + jit.jumpThunk(CodeLocationLabel(vm->getCTIStub(CommonJITThunkID::ThrowStackOverflowAtPrologue).retaggedCode())); }); }); @@ -418,8 +398,10 @@ class LowerDFGToB3 { }); m_out.unreachable(); + unsigned numberOfCompiledDFGNodes = 0; for (DFG::BasicBlock* block : preOrder) - compileBlock(block); + numberOfCompiledDFGNodes += compileBlock(block); + m_ftlState.jitCode->setNumberOfCompiledDFGNodes(numberOfCompiledDFGNodes); // Make sure everything is decorated. This does a bunch of deferred decorating. This has // to happen last because our abstract heaps are generated lazily. They have to be @@ -480,10 +462,15 @@ class LowerDFGToB3 { } } - void compileBlock(DFG::BasicBlock* block) + enum class CodeGenerationResult : uint8_t { + NotGenerated, + Generated, + }; + + unsigned compileBlock(DFG::BasicBlock* block) { if (!block) - return; + return 0; dataLogLnIf(verboseCompilationEnabled(), "Compiling block ", *block); @@ -516,7 +503,7 @@ class LowerDFGToB3 { if (!m_highBlock->cfaHasVisited) { dataLogLnIf(verboseCompilationEnabled(), "Bailing because CFA didn't reach."); crash(m_highBlock, nullptr); - return; + return 0; } m_aiCheckedNodes.clear(); @@ -545,10 +532,15 @@ class LowerDFGToB3 { m_out.store(m_out.int32Zero, m_out.absolute(&vm().didEnterVM)); } + unsigned codeGeneratedNodes = 0; for (unsigned nodeIndex = 0; nodeIndex < m_highBlock->size(); ++nodeIndex) { - if (!compileNode(nodeIndex)) - break; + auto [notTerminated, result] = compileNode(nodeIndex); + if (result == CodeGenerationResult::Generated) + ++codeGeneratedNodes; + if (!notTerminated) + return codeGeneratedNodes; } + return codeGeneratedNodes; } void safelyInvalidateAfterTermination() @@ -709,11 +701,11 @@ class LowerDFGToB3 { } } - bool compileNode(unsigned nodeIndex) + std::tuple compileNode(unsigned nodeIndex) { if (!m_state.isValid()) { safelyInvalidateAfterTermination(); - return false; + return { false, CodeGenerationResult::NotGenerated }; } m_node = m_highBlock->at(nodeIndex); @@ -736,6 +728,7 @@ class LowerDFGToB3 { } } + CodeGenerationResult codeGenerationResult = CodeGenerationResult::Generated; switch (m_node->op()) { case DFG::Upsilon: compileUpsilon(); @@ -1147,8 +1140,9 @@ class LowerDFGToB3 { case ArraySplice: compileArraySplice(); break; + case ArrayIncludes: case ArrayIndexOf: - compileArrayIndexOf(); + compileArrayIndexOfOrArrayIncludes(); break; case CreateActivation: compileCreateActivation(); @@ -1867,6 +1861,7 @@ class LowerDFGToB3 { case BottomValue: case KillStack: case InitializeEntrypointArguments: + codeGenerationResult = CodeGenerationResult::NotGenerated; break; default: DFG_CRASH(m_graph, m_node, "Unrecognized node in FTL backend"); @@ -1891,17 +1886,17 @@ class LowerDFGToB3 { } if (m_node->isTerminal()) - return false; + return { false, codeGenerationResult }; if (!m_state.isValid()) { safelyInvalidateAfterTermination(); - return false; + return { false, codeGenerationResult }; } m_availabilityCalculator.executeNode(m_node); m_interpreter.executeEffects(nodeIndex); - return true; + return { true, codeGenerationResult }; } void compileUpsilon() @@ -7578,8 +7573,10 @@ IGNORE_CLANG_WARNINGS_END setJSValue(vmCall(Int64, refCount ? operationArraySplice : operationArraySpliceIgnoreResult, weakPointer(globalObject), base, index, deleteCount, m_out.constIntPtr(buffer), m_out.constInt32(insertionCount))); } - void compileArrayIndexOf() + void compileArrayIndexOfOrArrayIncludes() { + ASSERT(m_node->op() == ArrayIncludes || m_node->op() == ArrayIndexOf); + JSGlobalObject* globalObject = m_graph.globalObjectFor(m_origin.semantic); LValue base = lowCell(m_graph.varArgChild(m_node, 0)); LValue storage = lowStorage(m_node->numChildren() == 3 ? m_graph.varArgChild(m_node, 2) : m_graph.varArgChild(m_node, 3)); @@ -7594,6 +7591,8 @@ IGNORE_CLANG_WARNINGS_END } else startIndex = m_out.int32Zero; + bool isArrayIncludes = m_node->op() == ArrayIncludes; + Edge& searchElementEdge = m_graph.varArgChild(m_node, 1); switch (searchElementEdge.useKind()) { case Int32Use: @@ -7631,7 +7630,7 @@ IGNORE_CLANG_WARNINGS_END m_out.branch(m_out.notEqual(index, length), unsure(loopBody), unsure(notFound)); m_out.appendTo(loopBody, loopNext); - ValueFromBlock foundResult = m_out.anchor(index); + ValueFromBlock foundResult = isArrayIncludes ? m_out.anchor(m_out.constBool(true)) : m_out.anchor(index); switch (searchElementEdge.useKind()) { case Int32Use: { // Empty value is ignored because of JSValue::NumberTag. @@ -7656,13 +7655,16 @@ IGNORE_CLANG_WARNINGS_END m_out.jump(loopHeader); m_out.appendTo(notFound, continuation); - ValueFromBlock notFoundResult = m_out.anchor(m_out.constIntPtr(-1)); + ValueFromBlock notFoundResult = isArrayIncludes ? m_out.anchor(m_out.constBool(false)) : m_out.anchor(m_out.constIntPtr(-1)); m_out.jump(continuation); m_out.appendTo(continuation, lastNext); // We have to keep base alive since that keeps content of storage alive. ensureStillAliveHere(base); - setInt32(m_out.castToInt32(m_out.phi(pointerType(), notFoundResult, foundResult))); + if (isArrayIncludes) + setBoolean(m_out.phi(Int32, notFoundResult, foundResult)); + else + setInt32(m_out.castToInt32(m_out.phi(pointerType(), notFoundResult, foundResult))); return; } @@ -7712,7 +7714,7 @@ IGNORE_CLANG_WARNINGS_END m_out.branch(isString(element), unsure(fastPath), unsure(loopNext)); m_out.appendTo(fastPath, slowCheckElementRope); - ValueFromBlock foundResult = m_out.anchor(index); + ValueFromBlock foundResult = isArrayIncludes ? m_out.anchor(m_out.constBool(true)) : m_out.anchor(index); m_out.branch(m_out.equal(element, searchElement), unsure(continuation), unsure(slowCheckElementRope)); m_out.appendTo(slowCheckElementRope, slowCheckElement8Bit); @@ -7761,17 +7763,20 @@ IGNORE_CLANG_WARNINGS_END m_out.jump(loopHeader); m_out.appendTo(notFound, continuation); - ValueFromBlock notFoundResult = m_out.anchor(m_out.constIntPtr(-1)); + ValueFromBlock notFoundResult = isArrayIncludes ? m_out.anchor(m_out.constBool(false)) : m_out.anchor(m_out.constIntPtr(-1)); m_out.jump(continuation); m_out.appendTo(slowCase, continuation); - ValueFromBlock slowCaseResult = m_out.anchor(vmCall(Int64, operationArrayIndexOfString, weakPointer(globalObject), storage, searchElement, startIndex)); + ValueFromBlock slowCaseResult = isArrayIncludes ? m_out.anchor(vmCall(Int32, operationArrayIncludesString, weakPointer(globalObject), storage, searchElement, startIndex)) : m_out.anchor(vmCall(Int64, operationArrayIndexOfString, weakPointer(globalObject), storage, searchElement, startIndex)); m_out.jump(continuation); m_out.appendTo(continuation, lastNext); // We have to keep base alive since that keeps content of storage alive. ensureStillAliveHere(base); - setInt32(m_out.castToInt32(m_out.phi(Int64, notFoundResult, foundResult, slowCaseResult))); + if (isArrayIncludes) + setBoolean(m_out.phi(Int32, notFoundResult, foundResult, slowCaseResult)); + else + setInt32(m_out.castToInt32(m_out.phi(Int64, notFoundResult, foundResult, slowCaseResult))); return; } @@ -7795,21 +7800,30 @@ IGNORE_CLANG_WARNINGS_END RELEASE_ASSERT_NOT_REACHED(); break; } - setInt32(m_out.castToInt32(vmCall(Int64, operationArrayIndexOfNonStringIdentityValueContiguous, storage, searchElement, startIndex))); + if (isArrayIncludes) + setBoolean(vmCall(Int32, operationArrayIncludesNonStringIdentityValueContiguous, storage, searchElement, startIndex)); + else + setInt32(m_out.castToInt32(vmCall(Int64, operationArrayIndexOfNonStringIdentityValueContiguous, storage, searchElement, startIndex))); return; } case UntypedUse: switch (m_node->arrayMode().type()) { case Array::Double: - setInt32(m_out.castToInt32(vmCall(Int64, operationArrayIndexOfValueDouble, storage, lowJSValue(searchElementEdge), startIndex))); + if (isArrayIncludes) + setBoolean(vmCall(Int32, operationArrayIncludesValueDouble, storage, lowJSValue(searchElementEdge), startIndex)); + else + setInt32(m_out.castToInt32(vmCall(Int64, operationArrayIndexOfValueDouble, storage, lowJSValue(searchElementEdge), startIndex))); return; case Array::Contiguous: // We have to keep base alive since that keeps content of storage alive. ensureStillAliveHere(base); FALLTHROUGH; case Array::Int32: - setInt32(m_out.castToInt32(vmCall(Int64, operationArrayIndexOfValueInt32OrContiguous, weakPointer(globalObject), storage, lowJSValue(searchElementEdge), startIndex))); + if (isArrayIncludes) + setBoolean(vmCall(Int32, operationArrayIncludesValueInt32OrContiguous, weakPointer(globalObject), storage, lowJSValue(searchElementEdge), startIndex)); + else + setInt32(m_out.castToInt32(vmCall(Int64, operationArrayIndexOfValueInt32OrContiguous, weakPointer(globalObject), storage, lowJSValue(searchElementEdge), startIndex))); return; default: RELEASE_ASSERT_NOT_REACHED(); diff --git a/Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp b/Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp index 0491f30fab306..750dbb69ff68d 100644 --- a/Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp +++ b/Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp @@ -91,7 +91,7 @@ static void reboxAccordingToFormat( case DataFormatDouble: { jit.moveDoubleTo64(FPRInfo::fpRegT0, scratch1); jit.move64ToDouble(value, FPRInfo::fpRegT0); - jit.purifyNaN(FPRInfo::fpRegT0); + jit.purifyNaN(FPRInfo::fpRegT0, FPRInfo::fpRegT0); jit.boxDouble(FPRInfo::fpRegT0, value); jit.move64ToDouble(scratch1, FPRInfo::fpRegT0); break; diff --git a/Source/JavaScriptCore/heap/Heap.cpp b/Source/JavaScriptCore/heap/Heap.cpp index 440c4ca160479..8b48dd01e4b4c 100644 --- a/Source/JavaScriptCore/heap/Heap.cpp +++ b/Source/JavaScriptCore/heap/Heap.cpp @@ -2571,11 +2571,6 @@ RefPtr Heap::protectedEdenActivityCallback() return m_edenActivityCallback; } -IncrementalSweeper& Heap::sweeper() -{ - return m_sweeper.get(); -} - void Heap::setGarbageCollectionTimerEnabled(bool enable) { if (m_fullActivityCallback) diff --git a/Source/JavaScriptCore/heap/Heap.h b/Source/JavaScriptCore/heap/Heap.h index 23f86c2b5af49..98969e25d427d 100644 --- a/Source/JavaScriptCore/heap/Heap.h +++ b/Source/JavaScriptCore/heap/Heap.h @@ -348,7 +348,7 @@ class Heap { JS_EXPORT_PRIVATE void setGarbageCollectionTimerEnabled(bool); JS_EXPORT_PRIVATE void scheduleOpportunisticFullCollection(); - JS_EXPORT_PRIVATE IncrementalSweeper& sweeper(); + IncrementalSweeper& sweeper() { return m_sweeper.get(); } void addObserver(HeapObserver* observer) { m_observers.append(observer); } void removeObserver(HeapObserver* observer) { m_observers.removeFirst(observer); } @@ -879,7 +879,7 @@ class Heap { RefPtr m_fullActivityCallback; RefPtr m_edenActivityCallback; - Ref m_sweeper; + const Ref m_sweeper; Ref m_stopIfNecessaryTimer; Vector m_observers; diff --git a/Source/JavaScriptCore/inspector/remote/RemoteInspector.h b/Source/JavaScriptCore/inspector/remote/RemoteInspector.h index f8f65fb48de14..671a45d22e90d 100644 --- a/Source/JavaScriptCore/inspector/remote/RemoteInspector.h +++ b/Source/JavaScriptCore/inspector/remote/RemoteInspector.h @@ -136,7 +136,7 @@ class RemoteInspector final void registerTarget(RemoteControllableTarget*); void unregisterTarget(RemoteControllableTarget*); void updateTarget(RemoteControllableTarget*); - void sendMessageToRemote(TargetID, const String& message); + JS_EXPORT_PRIVATE void sendMessageToRemote(TargetID, const String& message); RemoteInspector::Client* client() const { return m_client; } JS_EXPORT_PRIVATE void setClient(RemoteInspector::Client*); diff --git a/Source/JavaScriptCore/jit/AssemblyHelpers.cpp b/Source/JavaScriptCore/jit/AssemblyHelpers.cpp index 737db6f6e5099..4b6fb5dada3a2 100644 --- a/Source/JavaScriptCore/jit/AssemblyHelpers.cpp +++ b/Source/JavaScriptCore/jit/AssemblyHelpers.cpp @@ -82,11 +82,18 @@ void AssemblyHelpers::decrementSuperSamplerCount() sub32(TrustedImm32(1), AbsoluteAddress(std::bit_cast(&g_superSamplerCount))); } -void AssemblyHelpers::purifyNaN(FPRReg fpr) +void AssemblyHelpers::purifyNaN(FPRReg inputFPR, FPRReg resultFPR) { - MacroAssembler::Jump notNaN = branchIfNotNaN(fpr); - move64ToDouble(TrustedImm64(std::bit_cast(PNaN)), fpr); + ASSERT(inputFPR != fpTempRegister); +#if CPU(ADDRESS64) + move64ToDouble(TrustedImm64(std::bit_cast(PNaN)), fpTempRegister); + moveDoubleConditionallyDouble(DoubleEqualAndOrdered, inputFPR, inputFPR, inputFPR, fpTempRegister, resultFPR); +#else + moveDouble(inputFPR, resultFPR); + auto notNaN = branchIfNotNaN(resultFPR); + move64ToDouble(TrustedImm64(std::bit_cast(PNaN)), resultFPR); notNaN.link(this); +#endif } #if ENABLE(SAMPLING_FLAGS) diff --git a/Source/JavaScriptCore/jit/AssemblyHelpers.h b/Source/JavaScriptCore/jit/AssemblyHelpers.h index 6dc9303108256..7088e382c88a9 100644 --- a/Source/JavaScriptCore/jit/AssemblyHelpers.h +++ b/Source/JavaScriptCore/jit/AssemblyHelpers.h @@ -1450,7 +1450,7 @@ class AssemblyHelpers : public MacroAssembler { void incrementSuperSamplerCount(); void decrementSuperSamplerCount(); - void purifyNaN(FPRReg); + void purifyNaN(FPRReg, FPRReg); // These methods convert between doubles, and doubles boxed and JSValues. #if USE(JSVALUE64) diff --git a/Source/JavaScriptCore/jit/CallFrameShuffler64.cpp b/Source/JavaScriptCore/jit/CallFrameShuffler64.cpp index 2e3fc3025ab74..d627be5d840e4 100644 --- a/Source/JavaScriptCore/jit/CallFrameShuffler64.cpp +++ b/Source/JavaScriptCore/jit/CallFrameShuffler64.cpp @@ -146,7 +146,7 @@ void CallFrameShuffler::emitBox(CachedRecovery& cachedRecovery) resultGPR = getFreeGPR(); ASSERT(resultGPR != InvalidGPRReg); ASSERT(Reg::fromIndex(resultGPR).isGPR()); - m_jit.purifyNaN(cachedRecovery.recovery().fpr()); + m_jit.purifyNaN(cachedRecovery.recovery().fpr(), cachedRecovery.recovery().fpr()); m_jit.moveDoubleTo64(cachedRecovery.recovery().fpr(), resultGPR); m_lockedRegisters.add(resultGPR, IgnoreVectors); if (tryAcquireNumberTagRegister()) diff --git a/Source/JavaScriptCore/jit/JIT.cpp b/Source/JavaScriptCore/jit/JIT.cpp index cf7181b649a8e..17c3b32ed0367 100644 --- a/Source/JavaScriptCore/jit/JIT.cpp +++ b/Source/JavaScriptCore/jit/JIT.cpp @@ -858,12 +858,9 @@ RefPtr JIT::compileAndLinkWithoutFinalizing(JITCompilationEffor stackOverflowWithEntry.link(this); emitFunctionPrologue(); - stackOverflow.link(this); m_bytecodeIndex = BytecodeIndex(0); - if (maxFrameExtentForSlowPathCall) - addPtr(TrustedImm32(-static_cast(maxFrameExtentForSlowPathCall)), stackPointerRegister); - emitGetFromCallFrameHeaderPtr(CallFrameSlot::codeBlock, regT0); - callThrowOperationWithCallFrameRollback(operationThrowStackOverflowError, regT0); + stackOverflow.link(this); + jumpThunk(CodeLocationLabel(vm().getCTIStub(CommonJITThunkID::ThrowStackOverflowAtPrologue).retaggedCode())); ASSERT(m_jmpTable.isEmpty()); @@ -1094,11 +1091,6 @@ void JIT::exceptionCheck() exceptionCheck(emitExceptionCheck(vm())); } -void JIT::exceptionChecksWithCallFrameRollback(Jump jumpToHandler) -{ - jumpToHandler.linkThunk(CodeLocationLabel(vm().getCTIStub(CommonJITThunkID::HandleExceptionWithCallFrameRollback).retaggedCode()), this); -} - } // namespace JSC WTF_ALLOW_UNSAFE_BUFFER_USAGE_END diff --git a/Source/JavaScriptCore/jit/JIT.h b/Source/JavaScriptCore/jit/JIT.h index c93b06571f802..2061554605106 100644 --- a/Source/JavaScriptCore/jit/JIT.h +++ b/Source/JavaScriptCore/jit/JIT.h @@ -246,7 +246,6 @@ namespace JSC { void exceptionCheck(Jump jumpToHandler); void exceptionCheck(); - void exceptionChecksWithCallFrameRollback(Jump jumpToHandler); void advanceToNextCheckpoint(); void emitJumpSlowToHotForCheckpoint(Jump); @@ -779,16 +778,6 @@ namespace JSC { return appendCall(operation); } - template - MacroAssembler::Call callThrowOperationWithCallFrameRollback(OperationType operation, Args... args) - { - setupArguments(args...); - updateTopCallFrame(); // The callee is responsible for setting topCallFrame to their caller - MacroAssembler::Call call = appendCall(operation); - exceptionChecksWithCallFrameRollback(jump()); - return call; - } - enum class ProfilingPolicy { ShouldEmitProfiling, NoProfiling diff --git a/Source/JavaScriptCore/jit/JITThunks.h b/Source/JavaScriptCore/jit/JITThunks.h index d66103610a488..e53b7e03a1bd2 100644 --- a/Source/JavaScriptCore/jit/JITThunks.h +++ b/Source/JavaScriptCore/jit/JITThunks.h @@ -54,7 +54,6 @@ class NativeExecutable; // List up super common stubs so that we initialize them eagerly. #define JSC_FOR_EACH_COMMON_THUNK(macro) \ macro(HandleException, handleExceptionGenerator) \ - macro(HandleExceptionWithCallFrameRollback, handleExceptionWithCallFrameRollbackGenerator) \ macro(CheckException, checkExceptionGenerator) \ macro(NativeCall, nativeCallGenerator) \ macro(NativeConstruct, nativeConstructGenerator) \ @@ -64,6 +63,7 @@ class NativeExecutable; macro(InternalFunctionConstruct, internalFunctionConstructGenerator) \ macro(ThrowExceptionFromCall, throwExceptionFromCallGenerator) \ macro(ThrowExceptionFromCallSlowPath, throwExceptionFromCallSlowPathGenerator) \ + macro(ThrowStackOverflowAtPrologue, throwStackOverflowAtPrologueGenerator) \ macro(VirtualThunkForRegularCall, virtualThunkForRegularCall) \ macro(VirtualThunkForTailCall, virtualThunkForTailCall) \ macro(VirtualThunkForConstruct, virtualThunkForConstruct) \ diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.cpp b/Source/JavaScriptCore/jit/ThunkGenerators.cpp index 4db8c0500566f..723211e311a99 100644 --- a/Source/JavaScriptCore/jit/ThunkGenerators.cpp +++ b/Source/JavaScriptCore/jit/ThunkGenerators.cpp @@ -59,22 +59,6 @@ MacroAssemblerCodeRef handleExceptionGenerator(VM& vm) return FINALIZE_THUNK(patchBuffer, JITThunkPtrTag, "handleException"_s, "handleException"); } -MacroAssemblerCodeRef handleExceptionWithCallFrameRollbackGenerator(VM& vm) -{ - CCallHelpers jit; - - jit.copyCalleeSavesToEntryFrameCalleeSavesBuffer(vm.topEntryFrame, GPRInfo::argumentGPR0); - - jit.move(CCallHelpers::TrustedImmPtr(&vm), GPRInfo::argumentGPR0); - jit.prepareCallOperation(vm); - CCallHelpers::Call operation = jit.call(OperationPtrTag); - jit.jumpToExceptionHandler(vm); - - LinkBuffer patchBuffer(jit, GLOBAL_THUNK_ID, LinkBuffer::Profile::ExtraCTIThunk); - patchBuffer.link(operation, operationLookupExceptionHandlerFromCallerFrame); - return FINALIZE_THUNK(patchBuffer, JITThunkPtrTag, "handleExceptionWithCallFrameRollback"_s, "handleExceptionWithCallFrameRollback"); -} - MacroAssemblerCodeRef popThunkStackPreservesAndHandleExceptionGenerator(VM& vm) { CCallHelpers jit; @@ -185,6 +169,31 @@ MacroAssemblerCodeRef throwExceptionFromCallSlowPathGenerator(VM return FINALIZE_THUNK(patchBuffer, JITThunkPtrTag, "throwExceptionFromCallSlowPath"_s, "Throw exception from call slow path thunk"); } +MacroAssemblerCodeRef throwStackOverflowAtPrologueGenerator(VM& vm) +{ + CCallHelpers jit; + + if (maxFrameExtentForSlowPathCall) + jit.addPtr(CCallHelpers::TrustedImm32(-static_cast(maxFrameExtentForSlowPathCall)), CCallHelpers::stackPointerRegister); + + // In all tiers (LLInt, Baseline, DFG, and FTL), CodeOrigin(BytecodeIndex(0)) is zero, or CallSiteIndex(0) is pointint at CodeOrigin(BytecodeIndex(0)). + jit.store32(CCallHelpers::TrustedImm32(0), CCallHelpers::tagFor(CallFrameSlot::argumentCountIncludingThis)); + + jit.emitGetFromCallFrameHeaderPtr(CallFrameSlot::codeBlock, GPRInfo::argumentGPR0); + jit.prepareCallOperation(vm); + jit.callOperation(operationThrowStackOverflowError); + + jit.copyCalleeSavesToEntryFrameCalleeSavesBuffer(vm.topEntryFrame, GPRInfo::argumentGPR0); + + jit.move(CCallHelpers::TrustedImmPtr(&vm), GPRInfo::argumentGPR0); + jit.prepareCallOperation(vm); + jit.callOperation(operationLookupExceptionHandlerFromCallerFrame); + jit.jumpToExceptionHandler(vm); + + LinkBuffer patchBuffer(jit, GLOBAL_THUNK_ID, LinkBuffer::Profile::Thunk); + return FINALIZE_THUNK(patchBuffer, JITThunkPtrTag, "throwStackOverflow"_s, "throwStackOverflow"); +} + // FIXME: We should distinguish between a megamorphic virtual call vs. a slow // path virtual call so that we can enable fast tail calls for megamorphic // virtual calls by using the shuffler. @@ -283,7 +292,7 @@ static MacroAssemblerCodeRef virtualThunkFor(VM& vm, CallMode mo jit.farJump(GPRInfo::returnValueGPR, JSEntryPtrTag); LinkBuffer patchBuffer(jit, GLOBAL_THUNK_ID, LinkBuffer::Profile::InlineCache); - return FINALIZE_THUNK(patchBuffer, JITThunkPtrTag, "VirtualCall"_s "Virtual %s thunk", mode == CallMode::Regular ? "call" : mode == CallMode::Tail ? "tail call" : "construct"); + return FINALIZE_THUNK(patchBuffer, JITThunkPtrTag, "VirtualCall"_s, "Virtual %s thunk", mode == CallMode::Regular ? "call" : mode == CallMode::Tail ? "tail call" : "construct"); } MacroAssemblerCodeRef virtualThunkForRegularCall(VM& vm) diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.h b/Source/JavaScriptCore/jit/ThunkGenerators.h index 687ac32dd8960..d584122bcde24 100644 --- a/Source/JavaScriptCore/jit/ThunkGenerators.h +++ b/Source/JavaScriptCore/jit/ThunkGenerators.h @@ -39,11 +39,11 @@ template class MacroAssemblerCodeRef; class VM; MacroAssemblerCodeRef handleExceptionGenerator(VM&); -MacroAssemblerCodeRef handleExceptionWithCallFrameRollbackGenerator(VM&); MacroAssemblerCodeRef popThunkStackPreservesAndHandleExceptionGenerator(VM&); MacroAssemblerCodeRef throwExceptionFromCallGenerator(VM&); MacroAssemblerCodeRef throwExceptionFromCallSlowPathGenerator(VM&); +MacroAssemblerCodeRef throwStackOverflowAtPrologueGenerator(VM&); MacroAssemblerCodeRef checkExceptionGenerator(VM&); MacroAssemblerCodeRef returnFromBaselineGenerator(VM&); diff --git a/Source/JavaScriptCore/parser/Lexer.cpp b/Source/JavaScriptCore/parser/Lexer.cpp index ff6d8b6656f19..e3357b0efce9e 100644 --- a/Source/JavaScriptCore/parser/Lexer.cpp +++ b/Source/JavaScriptCore/parser/Lexer.cpp @@ -42,6 +42,11 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN namespace JSC { +constinit const WTF::BitSet<256> whiteSpaceTable = makeLatin1CharacterBitSet( + [](LChar ch) { + return ch == ' ' || ch == '\t' || ch == 0xB || ch == 0xC || ch == 0xA0; + }); + bool isLexerKeyword(const Identifier& identifier) { return JSC::mainTable.entry(identifier); diff --git a/Source/JavaScriptCore/parser/Lexer.h b/Source/JavaScriptCore/parser/Lexer.h index bb401c341bfd1..2622e60a6a1f2 100644 --- a/Source/JavaScriptCore/parser/Lexer.h +++ b/Source/JavaScriptCore/parser/Lexer.h @@ -240,10 +240,12 @@ class Lexer { WTF_MAKE_TZONE_ALLOCATED_TEMPLATE_IMPL(template, Lexer); +JS_EXPORT_PRIVATE extern const WTF::BitSet<256> whiteSpaceTable; + template <> ALWAYS_INLINE bool Lexer::isWhiteSpace(LChar ch) { - return ch == ' ' || ch == '\t' || ch == 0xB || ch == 0xC || ch == 0xA0; + return whiteSpaceTable.get(ch); } template <> diff --git a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp b/Source/JavaScriptCore/runtime/ArrayPrototype.cpp index b6b5404c8949d..a9947491d61ad 100644 --- a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp +++ b/Source/JavaScriptCore/runtime/ArrayPrototype.cpp @@ -68,6 +68,7 @@ static JSC_DECLARE_HOST_FUNCTION(arrayProtoFuncFill); static JSC_DECLARE_HOST_FUNCTION(arrayProtoFuncToReversed); static JSC_DECLARE_HOST_FUNCTION(arrayProtoFuncToSorted); static JSC_DECLARE_HOST_FUNCTION(arrayProtoFuncWith); +static JSC_DECLARE_HOST_FUNCTION(arrayProtoFuncIncludes); // ------------------------------ ArrayPrototype ---------------------------- @@ -125,7 +126,7 @@ void ArrayPrototype::finishCreation(VM& vm, JSGlobalObject* globalObject) JSC_BUILTIN_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->builtinNames().findLastPublicName(), arrayPrototypeFindLastCodeGenerator, static_cast(PropertyAttribute::DontEnum)); JSC_BUILTIN_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->builtinNames().findIndexPublicName(), arrayPrototypeFindIndexCodeGenerator, static_cast(PropertyAttribute::DontEnum)); JSC_BUILTIN_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->builtinNames().findLastIndexPublicName(), arrayPrototypeFindLastIndexCodeGenerator, static_cast(PropertyAttribute::DontEnum)); - JSC_BUILTIN_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->builtinNames().includesPublicName(), arrayPrototypeIncludesCodeGenerator, static_cast(PropertyAttribute::DontEnum)); + JSC_NATIVE_INTRINSIC_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->includes, arrayProtoFuncIncludes, static_cast(PropertyAttribute::DontEnum), 1, ImplementationVisibility::Public, ArrayIncludesIntrinsic); JSC_BUILTIN_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->builtinNames().copyWithinPublicName(), arrayPrototypeCopyWithinCodeGenerator, static_cast(PropertyAttribute::DontEnum)); JSC_BUILTIN_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->builtinNames().atPublicName(), arrayPrototypeAtCodeGenerator, static_cast(PropertyAttribute::DontEnum)); JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->toReversed, arrayProtoFuncToReversed, static_cast(PropertyAttribute::DontEnum), 0, ImplementationVisibility::Public); @@ -134,7 +135,7 @@ void ArrayPrototype::finishCreation(VM& vm, JSGlobalObject* globalObject) JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->with, arrayProtoFuncWith, static_cast(PropertyAttribute::DontEnum), 2, ImplementationVisibility::Public); putDirectWithoutTransition(vm, vm.propertyNames->builtinNames().entriesPrivateName(), getDirect(vm, vm.propertyNames->builtinNames().entriesPublicName()), static_cast(PropertyAttribute::ReadOnly)); putDirectWithoutTransition(vm, vm.propertyNames->builtinNames().forEachPrivateName(), getDirect(vm, vm.propertyNames->builtinNames().forEachPublicName()), static_cast(PropertyAttribute::ReadOnly)); - putDirectWithoutTransition(vm, vm.propertyNames->builtinNames().includesPrivateName(), getDirect(vm, vm.propertyNames->builtinNames().includesPublicName()), static_cast(PropertyAttribute::ReadOnly)); + putDirectWithoutTransition(vm, vm.propertyNames->builtinNames().includesPrivateName(), getDirect(vm, vm.propertyNames->includes), static_cast(PropertyAttribute::ReadOnly)); putDirectWithoutTransition(vm, vm.propertyNames->builtinNames().indexOfPrivateName(), getDirect(vm, vm.propertyNames->builtinNames().indexOfPublicName()), static_cast(PropertyAttribute::ReadOnly)); putDirectWithoutTransition(vm, vm.propertyNames->builtinNames().keysPrivateName(), getDirect(vm, vm.propertyNames->builtinNames().keysPublicName()), static_cast(PropertyAttribute::ReadOnly)); putDirectWithoutTransition(vm, vm.propertyNames->builtinNames().mapPrivateName(), getDirect(vm, vm.propertyNames->builtinNames().mapPublicName()), static_cast(PropertyAttribute::ReadOnly)); @@ -154,7 +155,7 @@ void ArrayPrototype::finishCreation(VM& vm, JSGlobalObject* globalObject) &vm.propertyNames->builtinNames().findLastIndexPublicName(), &vm.propertyNames->builtinNames().flatPublicName(), &vm.propertyNames->builtinNames().flatMapPublicName(), - &vm.propertyNames->builtinNames().includesPublicName(), + &vm.propertyNames->includes, &vm.propertyNames->builtinNames().keysPublicName(), &vm.propertyNames->toReversed, &vm.propertyNames->toSorted, @@ -2126,6 +2127,54 @@ JSC_DEFINE_HOST_FUNCTION(arrayProtoFuncWith, (JSGlobalObject* globalObject, Call return JSValue::encode(result); } +JSC_DEFINE_HOST_FUNCTION(arrayProtoFuncIncludes, (JSGlobalObject* globalObject, CallFrame* callFrame)) +{ + VM& vm = globalObject->vm(); + auto scope = DECLARE_THROW_SCOPE(vm); + + JSValue thisValue = callFrame->thisValue().toThis(globalObject, ECMAMode::strict()); + RETURN_IF_EXCEPTION(scope, { }); + + if (UNLIKELY(thisValue.isUndefinedOrNull())) + return throwVMTypeError(globalObject, scope, "Array.prototype.includes requires that |this| not be null or undefined"_s); + auto* thisObject = thisValue.toObject(globalObject); + RETURN_IF_EXCEPTION(scope, { }); + + uint64_t length = toLength(globalObject, thisObject); + RETURN_IF_EXCEPTION(scope, { }); + + if (!length) + return JSValue::encode(jsBoolean(false)); + + uint64_t index = argumentClampedIndexFromStartOrEnd(globalObject, callFrame->argument(1), length, 0); + RETURN_IF_EXCEPTION(scope, { }); + + ASSERT(index <= length); + if (index == length) + return JSValue::encode(jsBoolean(false)); + + JSValue searchElement = callFrame->argument(0); + + if (LIKELY(isJSArray(thisObject))) { + JSArray* thisArray = jsCast(thisObject); + auto fastResult = thisArray->fastIncludes(globalObject, searchElement, index, length); + RETURN_IF_EXCEPTION(scope, { }); + if (fastResult) + return JSValue::encode(jsBoolean(fastResult.value())); + } + + for (; index < length; ++index) { + auto currentElement = thisObject->getIndex(globalObject, index); + RETURN_IF_EXCEPTION(scope, { }); + bool isEqual = sameValueZero(globalObject, searchElement, currentElement); + RETURN_IF_EXCEPTION(scope, { }); + if (isEqual) + return JSValue::encode(jsBoolean(true)); + } + + return JSValue::encode(jsBoolean(false)); +} + } // namespace JSC WTF_ALLOW_UNSAFE_BUFFER_USAGE_END diff --git a/Source/JavaScriptCore/runtime/CachedTypes.cpp b/Source/JavaScriptCore/runtime/CachedTypes.cpp index eb315d0322eaa..f2965bf503f96 100644 --- a/Source/JavaScriptCore/runtime/CachedTypes.cpp +++ b/Source/JavaScriptCore/runtime/CachedTypes.cpp @@ -670,12 +670,13 @@ class CachedPair : public CachedObject, SourceType>, typename KeyTraitsArg = HashTraits>, typename MappedTraitsArg = HashTraits>, typename TableTraits = WTF::HashTableTraits> -class CachedHashMap : public VariableLengthObject, SourceType, HashArg, KeyTraitsArg, MappedTraitsArg, TableTraits>> { - template - using Map = UncheckedKeyHashMap; +class CachedHashMap : public VariableLengthObject, SourceType, HashArg, KeyTraitsArg, MappedTraitsArg, TableTraits>> { + template + using Map = HashMap; public: - void encode(Encoder& encoder, const Map, SourceType>& map) + template + void encode(Encoder& encoder, const Map, SourceType, shouldValidateKey>& map) { SourceType entriesVector(map.size()); unsigned i = 0; @@ -684,7 +685,8 @@ class CachedHashMap : public VariableLengthObject, SourceType>& map) const + template + void decode(Decoder& decoder, Map, SourceType, shouldValidateKey>& map) const { SourceType decodedEntries; m_entries.decode(decoder, decodedEntries); diff --git a/Source/JavaScriptCore/runtime/CommonIdentifiers.h b/Source/JavaScriptCore/runtime/CommonIdentifiers.h index ad4ba3aa54fcb..e1b881cc79e20 100644 --- a/Source/JavaScriptCore/runtime/CommonIdentifiers.h +++ b/Source/JavaScriptCore/runtime/CommonIdentifiers.h @@ -163,6 +163,7 @@ macro(id) \ macro(ignoreCase) \ macro(ignorePunctuation) \ + macro(includes) \ macro(index) \ macro(indices) \ macro(inferredName) \ diff --git a/Source/JavaScriptCore/runtime/DirectArguments.cpp b/Source/JavaScriptCore/runtime/DirectArguments.cpp index ca321cdfedf8a..98968129ebf0d 100644 --- a/Source/JavaScriptCore/runtime/DirectArguments.cpp +++ b/Source/JavaScriptCore/runtime/DirectArguments.cpp @@ -27,7 +27,7 @@ #include "DirectArguments.h" #include "CodeBlock.h" -#include "GenericArgumentsInlines.h" +#include "GenericArgumentsImplInlines.h" WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN @@ -38,7 +38,7 @@ STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(DirectArguments); const ClassInfo DirectArguments::s_info = { "Arguments"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(DirectArguments) }; DirectArguments::DirectArguments(VM& vm, Structure* structure, unsigned length, unsigned capacity) - : GenericArguments(vm, structure) + : GenericArgumentsImpl(vm, structure) , m_length(length) , m_minCapacity(capacity) { @@ -97,14 +97,13 @@ void DirectArguments::visitChildrenImpl(JSCell* thisCell, Visitor& visitor) { DirectArguments* thisObject = static_cast(thisCell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); - Base::visitChildren(thisObject, visitor); + GenericArgumentsImpl::visitChildren(thisCell, visitor); // Including Base::visitChildren. visitor.appendValues(thisObject->storage(), std::max(thisObject->m_length, thisObject->m_minCapacity)); visitor.append(thisObject->m_callee); if (thisObject->m_mappedArguments) visitor.markAuxiliary(thisObject->m_mappedArguments.get()); - GenericArguments::visitChildren(thisCell, visitor); } DEFINE_VISIT_CHILDREN(DirectArguments); @@ -165,7 +164,7 @@ void DirectArguments::copyToArguments(JSGlobalObject* globalObject, JSValue* fir return; } - GenericArguments::copyToArguments(globalObject, firstElementDest, offset, length); + GenericArgumentsImpl::copyToArguments(globalObject, firstElementDest, offset, length); } unsigned DirectArguments::mappedArgumentsSize() diff --git a/Source/JavaScriptCore/runtime/DirectArguments.h b/Source/JavaScriptCore/runtime/DirectArguments.h index 783f7a07e9f76..c5d1e36bfb897 100644 --- a/Source/JavaScriptCore/runtime/DirectArguments.h +++ b/Source/JavaScriptCore/runtime/DirectArguments.h @@ -27,7 +27,7 @@ #include "CagedBarrierPtr.h" #include "DirectArgumentsOffset.h" -#include "GenericArguments.h" +#include "GenericArgumentsImpl.h" #include WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN @@ -43,7 +43,7 @@ namespace JSC { // // To speed allocation, this object will hold all of the arguments in-place. The arguments as well // as a table of flags saying which arguments were overridden. -class DirectArguments final : public GenericArguments { +class DirectArguments final : public GenericArgumentsImpl { private: DirectArguments(VM&, Structure*, unsigned length, unsigned capacity); @@ -125,7 +125,7 @@ class DirectArguments final : public GenericArguments { return storage()[offset.offset()]; } - // Methods intended for use by the GenericArguments mixin. + // Methods intended for use by the GenericArgumentsImpl mixin. bool overrodeThings() const { return !!m_mappedArguments; } void overrideThings(JSGlobalObject*); void overrideThingsIfNecessary(JSGlobalObject*); @@ -133,17 +133,17 @@ class DirectArguments final : public GenericArguments { void initModifiedArgumentsDescriptorIfNecessary(JSGlobalObject* globalObject) { - GenericArguments::initModifiedArgumentsDescriptorIfNecessary(globalObject, m_length); + GenericArgumentsImpl::initModifiedArgumentsDescriptorIfNecessary(globalObject, m_length); } void setModifiedArgumentDescriptor(JSGlobalObject* globalObject, unsigned index) { - GenericArguments::setModifiedArgumentDescriptor(globalObject, index, m_length); + GenericArgumentsImpl::setModifiedArgumentDescriptor(globalObject, index, m_length); } bool isModifiedArgumentDescriptor(unsigned index) { - return GenericArguments::isModifiedArgumentDescriptor(index, m_length); + return GenericArgumentsImpl::isModifiedArgumentDescriptor(index, m_length); } void copyToArguments(JSGlobalObject*, JSValue* firstElementDest, unsigned offset, unsigned length); diff --git a/Source/JavaScriptCore/runtime/GenericArguments.h b/Source/JavaScriptCore/runtime/GenericArgumentsImpl.h similarity index 95% rename from Source/JavaScriptCore/runtime/GenericArguments.h rename to Source/JavaScriptCore/runtime/GenericArgumentsImpl.h index 731cdb7003ef1..975d52bd89f41 100644 --- a/Source/JavaScriptCore/runtime/GenericArguments.h +++ b/Source/JavaScriptCore/runtime/GenericArgumentsImpl.h @@ -33,13 +33,13 @@ namespace JSC { // This is a mixin for the two kinds of Arguments-class objects that arise when you say // "arguments" inside a function. This class doesn't show up in the JSCell inheritance hierarchy. template -class GenericArguments : public JSNonFinalObject { +class GenericArgumentsImpl : public JSNonFinalObject { public: - typedef JSNonFinalObject Base; + using Base = JSNonFinalObject; static constexpr unsigned StructureFlags = Base::StructureFlags | OverridesGetOwnPropertySlot | OverridesGetOwnPropertyNames | OverridesPut | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero; protected: - GenericArguments(VM& vm, Structure* structure) + GenericArgumentsImpl(VM& vm, Structure* structure) : Base(vm, structure) { } @@ -53,7 +53,7 @@ class GenericArguments : public JSNonFinalObject { static bool deleteProperty(JSCell*, JSGlobalObject*, PropertyName, DeletePropertySlot&); static bool deletePropertyByIndex(JSCell*, JSGlobalObject*, unsigned propertyName); static bool defineOwnProperty(JSObject*, JSGlobalObject*, PropertyName, const PropertyDescriptor&, bool shouldThrow); - + void initModifiedArgumentsDescriptor(JSGlobalObject*, unsigned length); void initModifiedArgumentsDescriptorIfNecessary(JSGlobalObject*, unsigned length); void setModifiedArgumentDescriptor(JSGlobalObject*, unsigned index, unsigned length); diff --git a/Source/JavaScriptCore/runtime/GenericArgumentsInlines.h b/Source/JavaScriptCore/runtime/GenericArgumentsImplInlines.h similarity index 83% rename from Source/JavaScriptCore/runtime/GenericArgumentsInlines.h rename to Source/JavaScriptCore/runtime/GenericArgumentsImplInlines.h index d7d7675f4f7b4..88da6e5321b78 100644 --- a/Source/JavaScriptCore/runtime/GenericArgumentsInlines.h +++ b/Source/JavaScriptCore/runtime/GenericArgumentsImplInlines.h @@ -25,7 +25,7 @@ #pragma once -#include "GenericArguments.h" +#include "GenericArgumentsImpl.h" #include "JSCInlines.h" WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN @@ -34,24 +34,24 @@ namespace JSC { template template -void GenericArguments::visitChildrenImpl(JSCell* thisCell, Visitor& visitor) +void GenericArgumentsImpl::visitChildrenImpl(JSCell* thisCell, Visitor& visitor) { Type* thisObject = static_cast(thisCell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisCell, visitor); - - if (thisObject->m_modifiedArgumentsDescriptor) - visitor.markAuxiliary(thisObject->m_modifiedArgumentsDescriptor.getUnsafe()); + + if (auto* pointer = thisObject->m_modifiedArgumentsDescriptor.getUnsafe()) + visitor.markAuxiliary(pointer); } -DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template, GenericArguments); +DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template, GenericArgumentsImpl); template -bool GenericArguments::getOwnPropertySlot(JSObject* object, JSGlobalObject* globalObject, PropertyName ident, PropertySlot& slot) +bool GenericArgumentsImpl::getOwnPropertySlot(JSObject* object, JSGlobalObject* globalObject, PropertyName ident, PropertySlot& slot) { Type* thisObject = jsCast(object); VM& vm = globalObject->vm(); - + if (!thisObject->overrodeThings()) { if (ident == vm.propertyNames->length) { slot.setValue(thisObject, static_cast(PropertyAttribute::DontEnum), jsNumber(thisObject->internalLength())); @@ -66,36 +66,36 @@ bool GenericArguments::getOwnPropertySlot(JSObject* object, JSGlobalObject return true; } } - + if (std::optional index = parseIndex(ident)) - return GenericArguments::getOwnPropertySlotByIndex(thisObject, globalObject, *index, slot); + return GenericArgumentsImpl::getOwnPropertySlotByIndex(thisObject, globalObject, *index, slot); return Base::getOwnPropertySlot(thisObject, globalObject, ident, slot); } template -bool GenericArguments::getOwnPropertySlotByIndex(JSObject* object, JSGlobalObject* globalObject, unsigned index, PropertySlot& slot) +bool GenericArgumentsImpl::getOwnPropertySlotByIndex(JSObject* object, JSGlobalObject* globalObject, unsigned index, PropertySlot& slot) { Type* thisObject = jsCast(object); - + if (!thisObject->isModifiedArgumentDescriptor(index) && thisObject->isMappedArgument(index)) { slot.setValue(thisObject, static_cast(PropertyAttribute::None), thisObject->getIndexQuickly(index)); return true; } - + bool result = Base::getOwnPropertySlotByIndex(object, globalObject, index, slot); - + if (thisObject->isMappedArgument(index)) { ASSERT(result); slot.setValue(thisObject, slot.attributes(), thisObject->getIndexQuickly(index)); return true; } - + return result; } template -void GenericArguments::getOwnPropertyNames(JSObject* object, JSGlobalObject* globalObject, PropertyNameArray& array, DontEnumPropertiesMode mode) +void GenericArgumentsImpl::getOwnPropertyNames(JSObject* object, JSGlobalObject* globalObject, PropertyNameArray& array, DontEnumPropertiesMode mode) { VM& vm = globalObject->vm(); Type* thisObject = jsCast(object); @@ -118,12 +118,12 @@ void GenericArguments::getOwnPropertyNames(JSObject* object, JSGlobalObjec } template -bool GenericArguments::put(JSCell* cell, JSGlobalObject* globalObject, PropertyName ident, JSValue value, PutPropertySlot& slot) +bool GenericArgumentsImpl::put(JSCell* cell, JSGlobalObject* globalObject, PropertyName ident, JSValue value, PutPropertySlot& slot) { Type* thisObject = jsCast(cell); VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); - + if (!thisObject->overrodeThings() && (ident == vm.propertyNames->length || ident == vm.propertyNames->callee @@ -138,7 +138,7 @@ bool GenericArguments::put(JSCell* cell, JSGlobalObject* globalObject, Pro // Fall back to the OrdinarySet when the receiver is altered from the thisObject. if (UNLIKELY(slot.thisValue() != thisObject)) RELEASE_AND_RETURN(scope, Base::put(thisObject, globalObject, ident, value, slot)); - + std::optional index = parseIndex(ident); if (index && thisObject->isMappedArgument(index.value())) { thisObject->setIndexQuickly(vm, index.value(), value); @@ -149,7 +149,7 @@ bool GenericArguments::put(JSCell* cell, JSGlobalObject* globalObject, Pro } template -bool GenericArguments::putByIndex(JSCell* cell, JSGlobalObject* globalObject, unsigned index, JSValue value, bool shouldThrow) +bool GenericArgumentsImpl::putByIndex(JSCell* cell, JSGlobalObject* globalObject, unsigned index, JSValue value, bool shouldThrow) { Type* thisObject = jsCast(cell); VM& vm = globalObject->vm(); @@ -158,17 +158,17 @@ bool GenericArguments::putByIndex(JSCell* cell, JSGlobalObject* globalObje thisObject->setIndexQuickly(vm, index, value); return true; } - + return Base::putByIndex(cell, globalObject, index, value, shouldThrow); } template -bool GenericArguments::deleteProperty(JSCell* cell, JSGlobalObject* globalObject, PropertyName ident, DeletePropertySlot& slot) +bool GenericArgumentsImpl::deleteProperty(JSCell* cell, JSGlobalObject* globalObject, PropertyName ident, DeletePropertySlot& slot) { Type* thisObject = jsCast(cell); VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); - + if (!thisObject->overrodeThings() && (ident == vm.propertyNames->length || ident == vm.propertyNames->callee @@ -178,13 +178,13 @@ bool GenericArguments::deleteProperty(JSCell* cell, JSGlobalObject* global } if (std::optional index = parseIndex(ident)) - RELEASE_AND_RETURN(scope, GenericArguments::deletePropertyByIndex(thisObject, globalObject, *index)); + RELEASE_AND_RETURN(scope, GenericArgumentsImpl::deletePropertyByIndex(thisObject, globalObject, *index)); RELEASE_AND_RETURN(scope, Base::deleteProperty(thisObject, globalObject, ident, slot)); } template -bool GenericArguments::deletePropertyByIndex(JSCell* cell, JSGlobalObject* globalObject, unsigned index) +bool GenericArgumentsImpl::deletePropertyByIndex(JSCell* cell, JSGlobalObject* globalObject, unsigned index) { VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); @@ -214,12 +214,12 @@ bool GenericArguments::deletePropertyByIndex(JSCell* cell, JSGlobalObject* // https://tc39.es/ecma262/#sec-arguments-exotic-objects-defineownproperty-p-desc template -bool GenericArguments::defineOwnProperty(JSObject* object, JSGlobalObject* globalObject, PropertyName ident, const PropertyDescriptor& descriptor, bool shouldThrow) +bool GenericArgumentsImpl::defineOwnProperty(JSObject* object, JSGlobalObject* globalObject, PropertyName ident, const PropertyDescriptor& descriptor, bool shouldThrow) { Type* thisObject = jsCast(object); VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); - + if (ident == vm.propertyNames->length || ident == vm.propertyNames->callee || ident == vm.propertyNames->iteratorSymbol) { @@ -270,7 +270,7 @@ bool GenericArguments::defineOwnProperty(JSObject* object, JSGlobalObject* } template -void GenericArguments::initModifiedArgumentsDescriptor(JSGlobalObject* globalObject, unsigned argsLength) +void GenericArgumentsImpl::initModifiedArgumentsDescriptor(JSGlobalObject* globalObject, unsigned argsLength) { VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); @@ -291,14 +291,14 @@ void GenericArguments::initModifiedArgumentsDescriptor(JSGlobalObject* glo } template -void GenericArguments::initModifiedArgumentsDescriptorIfNecessary(JSGlobalObject* globalObject, unsigned argsLength) +void GenericArgumentsImpl::initModifiedArgumentsDescriptorIfNecessary(JSGlobalObject* globalObject, unsigned argsLength) { if (!m_modifiedArgumentsDescriptor) initModifiedArgumentsDescriptor(globalObject, argsLength); } template -void GenericArguments::setModifiedArgumentDescriptor(JSGlobalObject* globalObject, unsigned index, unsigned length) +void GenericArgumentsImpl::setModifiedArgumentDescriptor(JSGlobalObject* globalObject, unsigned index, unsigned length) { VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); @@ -310,7 +310,7 @@ void GenericArguments::setModifiedArgumentDescriptor(JSGlobalObject* globa } template -bool GenericArguments::isModifiedArgumentDescriptor(unsigned index, unsigned length) +bool GenericArgumentsImpl::isModifiedArgumentDescriptor(unsigned index, unsigned length) { if (!m_modifiedArgumentsDescriptor) return false; @@ -320,7 +320,7 @@ bool GenericArguments::isModifiedArgumentDescriptor(unsigned index, unsign } template -void GenericArguments::copyToArguments(JSGlobalObject* globalObject, JSValue* firstElementDest, unsigned offset, unsigned length) +void GenericArgumentsImpl::copyToArguments(JSGlobalObject* globalObject, JSValue* firstElementDest, unsigned offset, unsigned length) { VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); diff --git a/Source/JavaScriptCore/runtime/Intrinsic.h b/Source/JavaScriptCore/runtime/Intrinsic.h index 4b886f779cc26..220ae250b6d61 100644 --- a/Source/JavaScriptCore/runtime/Intrinsic.h +++ b/Source/JavaScriptCore/runtime/Intrinsic.h @@ -56,6 +56,7 @@ namespace JSC { macro(ArrayPopIntrinsic) \ macro(ArraySliceIntrinsic) \ macro(ArraySpliceIntrinsic) \ + macro(ArrayIncludesIntrinsic) \ macro(ArrayIndexOfIntrinsic) \ macro(ArrayValuesIntrinsic) \ macro(ArrayKeysIntrinsic) \ diff --git a/Source/JavaScriptCore/runtime/JSArray.cpp b/Source/JavaScriptCore/runtime/JSArray.cpp index f5e157840f99b..605c92520530c 100644 --- a/Source/JavaScriptCore/runtime/JSArray.cpp +++ b/Source/JavaScriptCore/runtime/JSArray.cpp @@ -734,6 +734,91 @@ JSArray* JSArray::fastWith(JSGlobalObject* globalObject, uint32_t index, JSValue } } +std::optional JSArray::fastIncludes(JSGlobalObject* globalObject, JSValue searchElement, uint64_t index64, uint64_t length64) +{ + VM& vm = globalObject->vm(); + auto scope = DECLARE_THROW_SCOPE(vm); + + bool canDoFastPath = this->canDoFastIndexedAccess() + && this->getArrayLength() == length64 // The effects in getting `index` could have changed the length of this array. + && static_cast(index64) == index64; + if (!canDoFastPath) + return std::nullopt; + + uint32_t length = static_cast(length64); + uint32_t index = static_cast(index64); + + switch (this->indexingType()) { + case ArrayWithInt32: { + auto& butterfly = *this->butterfly(); + auto data = butterfly.contiguous().data(); + + if (searchElement.isUndefined()) + return containsHole(data, length64); + if (!searchElement.isNumber()) + return false; + JSValue searchInt32; + if (searchElement.isInt32()) + searchInt32 = searchElement; + else { + double searchNumber = searchElement.asNumber(); + if (!canBeInt32(searchNumber)) + return false; + searchInt32 = jsNumber(static_cast(searchNumber)); + } + for (; index < length; ++index) { + if (searchInt32 == data[index].get()) + return true; + } + return false; + } + case ArrayWithContiguous: { + auto& butterfly = *this->butterfly(); + auto data = butterfly.contiguous().data(); + + if (searchElement.isObject()) { + auto* result = std::bit_cast*>(WTF::find64(std::bit_cast(data + index), JSValue::encode(searchElement), length - index)); + if (result) + return true; + return false; + } + + bool searchElementIsUndefined = searchElement.isUndefined(); + for (; index < length; ++index) { + JSValue value = data[index].get(); + if (!value) { + if (searchElementIsUndefined) + return true; + continue; + } + bool isEqual = sameValueZero(globalObject, searchElement, value); + RETURN_IF_EXCEPTION(scope, { }); + if (isEqual) + return true; + } + return false; + } + case ALL_DOUBLE_INDEXING_TYPES: { + auto& butterfly = *this->butterfly(); + auto data = butterfly.contiguousDouble().data(); + + if (searchElement.isUndefined()) + return containsHole(data, length64); + if (!searchElement.isNumber()) + return false; + + double searchNumber = searchElement.asNumber(); + for (; index < length; ++index) { + if (data[index] == searchNumber) + return true; + } + return false; + } + default: + return std::nullopt; + } +} + bool JSArray::appendMemcpy(JSGlobalObject* globalObject, VM& vm, unsigned startIndex, IndexingType otherType, std::span values) { auto scope = DECLARE_THROW_SCOPE(vm); diff --git a/Source/JavaScriptCore/runtime/JSArray.h b/Source/JavaScriptCore/runtime/JSArray.h index e26dac32883f9..9ad15922ad58d 100644 --- a/Source/JavaScriptCore/runtime/JSArray.h +++ b/Source/JavaScriptCore/runtime/JSArray.h @@ -125,6 +125,8 @@ class JSArray : public JSNonFinalObject { JSArray* fastWith(JSGlobalObject*, uint32_t index, JSValue, uint64_t length); + std::optional fastIncludes(JSGlobalObject*, JSValue, uint64_t fromIndex, uint64_t length); + ALWAYS_INLINE bool definitelyNegativeOneMiss() const; enum ShiftCountMode { diff --git a/Source/JavaScriptCore/runtime/JSCJSValueInlines.h b/Source/JavaScriptCore/runtime/JSCJSValueInlines.h index b40cfa5add247..3d7deda469fb7 100644 --- a/Source/JavaScriptCore/runtime/JSCJSValueInlines.h +++ b/Source/JavaScriptCore/runtime/JSCJSValueInlines.h @@ -1479,4 +1479,26 @@ ALWAYS_INLINE bool sameValue(JSGlobalObject* globalObject, JSValue a, JSValue b) return std::bit_cast(x) == std::bit_cast(y); } +ALWAYS_INLINE bool sameValueZero(JSGlobalObject* globalObject, JSValue a, JSValue b) +{ + if (a == b) + return true; + + if (!a.isNumber()) + return JSValue::strictEqual(globalObject, a, b); + if (!b.isNumber()) + return false; + double x = a.asNumber(); + double y = b.asNumber(); + if (std::isnan(x)) + return std::isnan(y); + if (std::isnan(y)) + return std::isnan(x); + if (!x && y == -0) + return true; + if (x == -0 && !y) + return true; + return std::bit_cast(x) == std::bit_cast(y); +} + } // namespace JSC diff --git a/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp b/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp index 6ad675a90472f..74c0809272e35 100644 --- a/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp +++ b/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include "ObjectConstructorInlines.h" @@ -57,16 +58,6 @@ namespace JSC { const ASCIILiteral ObjectProtoCalledOnNullOrUndefinedError { "Object.prototype.__proto__ called on null or undefined"_s }; const ASCIILiteral RestrictedPropertyAccessError { "'arguments', 'callee', and 'caller' cannot be accessed in this context."_s }; -template -static constexpr WTF::BitSet<256> makeCharacterBitmap(const char (&characters)[charactersCount]) -{ - static_assert(charactersCount > 0, "Since string literal is null terminated, characterCount is always larger than 0"); - WTF::BitSet<256> bitmap; - for (unsigned i = 0; i < charactersCount - 1; ++i) - bitmap.set(characters[i]); - return bitmap; -} - template static JSValue encode(JSGlobalObject* globalObject, const WTF::BitSet<256>& doNotEscape, std::span characters) { @@ -571,7 +562,7 @@ JSC_DEFINE_HOST_FUNCTION(globalFuncParseFloat, (JSGlobalObject* globalObject, Ca JSC_DEFINE_HOST_FUNCTION(globalFuncDecodeURI, (JSGlobalObject* globalObject, CallFrame* callFrame)) { - static constexpr auto doNotUnescapeWhenDecodingURI = makeCharacterBitmap( + static constexpr auto doNotUnescapeWhenDecodingURI = makeLatin1CharacterBitSet( "#$&+,/:;=?@" ); @@ -586,7 +577,7 @@ JSC_DEFINE_HOST_FUNCTION(globalFuncDecodeURIComponent, (JSGlobalObject* globalOb JSC_DEFINE_HOST_FUNCTION(globalFuncEncodeURI, (JSGlobalObject* globalObject, CallFrame* callFrame)) { - static constexpr auto doNotEscapeWhenEncodingURI = makeCharacterBitmap( + static constexpr auto doNotEscapeWhenEncodingURI = makeLatin1CharacterBitSet( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789" @@ -597,7 +588,7 @@ JSC_DEFINE_HOST_FUNCTION(globalFuncEncodeURI, (JSGlobalObject* globalObject, Cal JSC_DEFINE_HOST_FUNCTION(globalFuncEncodeURIComponent, (JSGlobalObject* globalObject, CallFrame* callFrame)) { - static constexpr auto doNotEscapeWhenEncodingURIComponent = makeCharacterBitmap( + static constexpr auto doNotEscapeWhenEncodingURIComponent = makeLatin1CharacterBitSet( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789" @@ -609,7 +600,7 @@ JSC_DEFINE_HOST_FUNCTION(globalFuncEncodeURIComponent, (JSGlobalObject* globalOb JSC_DEFINE_HOST_FUNCTION(globalFuncEscape, (JSGlobalObject* globalObject, CallFrame* callFrame)) { return JSValue::encode(toStringView(globalObject, callFrame->argument(0), [&] (StringView view) -> JSString* { - static constexpr auto doNotEscape = makeCharacterBitmap( + static constexpr auto doNotEscape = makeLatin1CharacterBitSet( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789" diff --git a/Source/JavaScriptCore/runtime/JSIteratorPrototype.cpp b/Source/JavaScriptCore/runtime/JSIteratorPrototype.cpp index 26a2501bbfb76..c4d1a2d5820c2 100644 --- a/Source/JavaScriptCore/runtime/JSIteratorPrototype.cpp +++ b/Source/JavaScriptCore/runtime/JSIteratorPrototype.cpp @@ -162,8 +162,11 @@ JSC_DEFINE_HOST_FUNCTION(iteratorProtoFuncForEach, (JSGlobalObject* globalObject return throwVMTypeError(globalObject, scope, "Iterator.prototype.forEach requires that |this| be an Object."_s); JSValue callbackArg = callFrame->argument(0); - if (!callbackArg.isCallable()) + if (!callbackArg.isCallable()) { + iteratorClose(globalObject, thisValue); + RETURN_IF_EXCEPTION(scope, { }); return throwVMTypeError(globalObject, scope, "Iterator.prototype.forEach requires the callback argument to be callable."_s); + } auto callData = JSC::getCallData(callbackArg); ASSERT(callData.type != CallData::Type::None); diff --git a/Source/JavaScriptCore/runtime/JSRunLoopTimer.cpp b/Source/JavaScriptCore/runtime/JSRunLoopTimer.cpp index 2e36a51a1c991..cbf579fd031cf 100644 --- a/Source/JavaScriptCore/runtime/JSRunLoopTimer.cpp +++ b/Source/JavaScriptCore/runtime/JSRunLoopTimer.cpp @@ -109,7 +109,7 @@ void JSRunLoopTimer::Manager::timerDidFire() timer->timerDidFire(); } -JSRunLoopTimer::Manager& JSRunLoopTimer::Manager::shared() +JSRunLoopTimer::Manager& JSRunLoopTimer::Manager::singleton() { static Manager* manager; static std::once_flag once; @@ -245,7 +245,7 @@ JSRunLoopTimer::~JSRunLoopTimer() = default; std::optional JSRunLoopTimer::timeUntilFire() { - return Manager::shared().timeUntilFire(*this); + return Manager::singleton().timeUntilFire(*this); } void JSRunLoopTimer::setTimeUntilFire(Seconds intervalInSeconds) @@ -253,7 +253,7 @@ void JSRunLoopTimer::setTimeUntilFire(Seconds intervalInSeconds) { Locker locker { m_lock }; m_isScheduled = true; - Manager::shared().scheduleTimer(*this, intervalInSeconds); + Manager::singleton().scheduleTimer(*this, intervalInSeconds); } Locker locker { m_timerCallbacksLock }; @@ -265,7 +265,7 @@ void JSRunLoopTimer::cancelTimer() { Locker locker { m_lock }; m_isScheduled = false; - Manager::shared().cancelTimer(*this); + Manager::singleton().cancelTimer(*this); } void JSRunLoopTimer::addTimerSetNotification(TimerNotificationCallback callback) diff --git a/Source/JavaScriptCore/runtime/JSRunLoopTimer.h b/Source/JavaScriptCore/runtime/JSRunLoopTimer.h index 5fb3d4916acfa..3645738674a2b 100644 --- a/Source/JavaScriptCore/runtime/JSRunLoopTimer.h +++ b/Source/JavaScriptCore/runtime/JSRunLoopTimer.h @@ -54,7 +54,7 @@ class JSRunLoopTimer : public ThreadSafeRefCounted { void timerDidFire(); public: - static Manager& shared(); + static Manager& singleton(); void registerVM(VM&); void unregisterVM(VM&); void scheduleTimer(JSRunLoopTimer&, Seconds nextFireTime); diff --git a/Source/JavaScriptCore/runtime/OptionsList.h b/Source/JavaScriptCore/runtime/OptionsList.h index 8c32dccce4bef..582a4f09eaaec 100644 --- a/Source/JavaScriptCore/runtime/OptionsList.h +++ b/Source/JavaScriptCore/runtime/OptionsList.h @@ -301,6 +301,8 @@ bool hasCapacityToUseLargeGigacage(); \ v(Unsigned, maximumFTLCandidateBytecodeCost, 20000, Normal, nullptr) \ \ + v(Double, ratioFTLNodesToBytecodeCost, 1.8, Normal, "Ratio converting FTL # of DFG nodes to approx bytecode cost") \ + \ /* Depth of inline stack, so 1 = no inlining, 2 = one level, etc. */ \ v(Unsigned, maximumInliningDepth, 5, Normal, "maximum allowed inlining depth. Depth of 1 means no inlining"_s) \ v(Unsigned, maximumInliningRecursion, 2, Normal, nullptr) \ @@ -608,6 +610,7 @@ bool hasCapacityToUseLargeGigacage(); v(Bool, useOMGInlining, true, Normal, "Use OMG inlining"_s) \ v(Bool, freeRetiredWasmCode, true, Normal, "free BBQ/OMG-OSR wasm code once it's no longer reachable."_s) \ v(Bool, useArrayAllocationSinking, true, Normal, "free BBQ/OMG-OSR wasm code once it's no longer reachable."_s) \ + v(Bool, dumpFTLCodeSize, false, Normal, nullptr) \ \ /* Feature Flags */\ \ diff --git a/Source/JavaScriptCore/runtime/ScopedArguments.cpp b/Source/JavaScriptCore/runtime/ScopedArguments.cpp index 80bbe38c83472..122d4cf0c3537 100644 --- a/Source/JavaScriptCore/runtime/ScopedArguments.cpp +++ b/Source/JavaScriptCore/runtime/ScopedArguments.cpp @@ -26,7 +26,7 @@ #include "config.h" #include "ScopedArguments.h" -#include "GenericArgumentsInlines.h" +#include "GenericArgumentsImplInlines.h" WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN @@ -37,7 +37,7 @@ STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(ScopedArguments); const ClassInfo ScopedArguments::s_info = { "Arguments"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(ScopedArguments) }; ScopedArguments::ScopedArguments(VM& vm, Structure* structure, WriteBarrier* storage, unsigned totalLength, JSFunction* callee, ScopedArgumentsTable* table, JSLexicalEnvironment* scope) - : GenericArguments(vm, structure) + : GenericArgumentsImpl(vm, structure) , m_totalLength(totalLength) , m_callee(callee, WriteBarrierEarlyInit) , m_table(table, WriteBarrierEarlyInit) @@ -99,7 +99,7 @@ void ScopedArguments::visitChildrenImpl(JSCell* cell, Visitor& visitor) { ScopedArguments* thisObject = static_cast(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); - Base::visitChildren(thisObject, visitor); + GenericArgumentsImpl::visitChildren(thisObject, visitor); // Including Base::visitChildren. visitor.append(thisObject->m_callee); visitor.append(thisObject->m_table); @@ -159,7 +159,7 @@ void ScopedArguments::unmapArgument(JSGlobalObject* globalObject, uint32_t i) void ScopedArguments::copyToArguments(JSGlobalObject* globalObject, JSValue* firstElementDest, unsigned offset, unsigned length) { - GenericArguments::copyToArguments(globalObject, firstElementDest, offset, length); + GenericArgumentsImpl::copyToArguments(globalObject, firstElementDest, offset, length); } bool ScopedArguments::isIteratorProtocolFastAndNonObservable() diff --git a/Source/JavaScriptCore/runtime/ScopedArguments.h b/Source/JavaScriptCore/runtime/ScopedArguments.h index 63e6d3b23b361..a04606f3400d1 100644 --- a/Source/JavaScriptCore/runtime/ScopedArguments.h +++ b/Source/JavaScriptCore/runtime/ScopedArguments.h @@ -25,7 +25,7 @@ #pragma once -#include "GenericArguments.h" +#include "GenericArgumentsImpl.h" #include "JSLexicalEnvironment.h" #include "Watchpoint.h" @@ -39,10 +39,10 @@ namespace JSC { // object will store the overflow arguments, if there are any. This object will use the symbol // table's ScopedArgumentsTable and the activation, or its overflow storage, to handle all indexed // lookups. -class ScopedArguments final : public GenericArguments { +class ScopedArguments final : public GenericArgumentsImpl { private: ScopedArguments(VM&, Structure*, WriteBarrier* storage, unsigned totalLength, JSFunction* callee, ScopedArgumentsTable*, JSLexicalEnvironment*); - using Base = GenericArguments; + using Base = GenericArgumentsImpl; public: template @@ -139,17 +139,17 @@ class ScopedArguments final : public GenericArguments { void initModifiedArgumentsDescriptorIfNecessary(JSGlobalObject* globalObject) { - GenericArguments::initModifiedArgumentsDescriptorIfNecessary(globalObject, m_table->length()); + GenericArgumentsImpl::initModifiedArgumentsDescriptorIfNecessary(globalObject, m_table->length()); } void setModifiedArgumentDescriptor(JSGlobalObject* globalObject, unsigned index) { - GenericArguments::setModifiedArgumentDescriptor(globalObject, index, m_table->length()); + GenericArgumentsImpl::setModifiedArgumentDescriptor(globalObject, index, m_table->length()); } bool isModifiedArgumentDescriptor(unsigned index) { - return GenericArguments::isModifiedArgumentDescriptor(index, m_table->length()); + return GenericArgumentsImpl::isModifiedArgumentDescriptor(index, m_table->length()); } void copyToArguments(JSGlobalObject*, JSValue* firstElementDest, unsigned offset, unsigned length); diff --git a/Source/JavaScriptCore/runtime/StableSort.h b/Source/JavaScriptCore/runtime/StableSort.h index 07b5eeafad89e..352aaf2511b8b 100644 --- a/Source/JavaScriptCore/runtime/StableSort.h +++ b/Source/JavaScriptCore/runtime/StableSort.h @@ -26,6 +26,7 @@ #pragma once #include "ArgList.h" +#include #include WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN @@ -45,54 +46,47 @@ static ALWAYS_INLINE bool coerceComparatorResultToBoolean(JSGlobalObject* global } template -static ALWAYS_INLINE void arrayInsertionSort(VM& vm, std::span span, const Functor& comparator) +static ALWAYS_INLINE void arrayInsertionSort(VM& vm, std::span span, const Functor& comparator, size_t sortedHeader = 0) { auto scope = DECLARE_THROW_SCOPE(vm); auto* array = span.data(); size_t length = span.size(); - for (size_t i = 1; i < length; ++i) { + for (size_t i = sortedHeader + 1; i < length; ++i) { auto value = array[i]; - size_t j = i; - for (; j > 0; --j) { - auto target = array[j - 1]; + + // [l, r) + size_t left = 0; + size_t right = i; + for (; left < right;) { + size_t m = left + (right - left) / 2; + auto target = array[m]; bool result = comparator(value, target); RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, void()); if (!result) - break; - array[j] = target; + left = m + 1; + else + right = m; } - array[j] = value; + ElementType t = value; + for (size_t j = left; j < i; ++j) + std::swap(array[j], t); + array[i] = t; } } template -static ALWAYS_INLINE void arrayMerge(VM& vm, std::span dst, std::span src, size_t srcIndex, size_t srcEnd, size_t width, const Functor& comparator) +static ALWAYS_INLINE void mergePowersortRuns(VM& vm, std::span dst, std::span src, size_t srcIndex1, size_t srcEnd1, size_t srcIndex2, size_t srcEnd2, const Functor& comparator) { auto scope = DECLARE_THROW_SCOPE(vm); - size_t left = srcIndex; - size_t leftEnd = std::min(left + width, srcEnd); - size_t right = leftEnd; - size_t rightEnd = std::min(right + width, srcEnd); - - if (right >= rightEnd) { - // The right subarray does not exist. Just copy src to dst. - // This is OK to use WTF::copyElements since both src and dst comes from MarkedArgumentBuffer when using this function for EncodedJSValue, - // thus marking happens after suspending the main thread completely. - WTF::copyElements(dst.subspan(left), src.subspan(left, rightEnd - left)); - return; - } + size_t left = srcIndex1; + size_t leftEnd = srcEnd1; + size_t right = srcIndex2; + size_t rightEnd = srcEnd2; - bool result = comparator(src[right], src[right - 1]); - RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, void()); - if (!result) { - // This entire array is already sorted. - // This is OK to use WTF::copyElements since both src and dst comes from MarkedArgumentBuffer when using this function for EncodedJSValue, - // thus marking happens after suspending the main thread completely. - WTF::copyElements(dst.subspan(left), src.subspan(left, rightEnd - left)); - return; - } + ASSERT(leftEnd <= right); + ASSERT(rightEnd <= src.size()); for (size_t dstIndex = left; dstIndex < rightEnd; ++dstIndex) { if (right < rightEnd) { @@ -112,25 +106,147 @@ static ALWAYS_INLINE void arrayMerge(VM& vm, std::span dst, std::sp } } -template +// J. Ian Munro and Sebastian Wild. Nearly-Optimal Mergesorts: Fast, Practical Sorting Methods That +// Optimally Adapt to Existing Runs. In 26th Annual European Symposium on Algorithms (ESA 2018). +// Leibniz International Proceedings in Informatics (LIPIcs), Volume 112, pp. 63:1-63:16, Schloss +// Dagstuhl – Leibniz-Zentrum für Informatik (2018) https://doi.org/10.4230/LIPIcs.ESA.2018.63 + +struct SortedRun { + size_t m_begin; + size_t m_end; +}; + +template static ALWAYS_INLINE std::span arrayStableSort(VM& vm, std::span src, std::span dst, const Functor& comparator) { + constexpr size_t extendRunCutoff = 8; + auto scope = DECLARE_THROW_SCOPE(vm); + const size_t numElements = src.size(); + + if (!numElements) + return src; + + // If the array is small, Powersort probably isn't worth it. Just insertion sort. + if (numElements < extendRunCutoff) { + scope.release(); + arrayInsertionSort(vm, src.subspan(0, src.size()), comparator); + return src; + } + + // power takes in [left, middle-1] and [middle, right] + auto power = [](size_t left, size_t middle, size_t right, size_t n) -> unsigned { + UInt128 n1 = middle - left; + UInt128 n2 = right - middle + 1; + // a and b are 2*midpoints of the two ranges, so always within [0, 2n) + UInt128 a = left * 2 + n1; + UInt128 b = middle * 2 + n2; + // n <= 2^64, so n << 62 <= 2^126 + // n << 62 must be <= 2^126, so a << 62 must be < 2^127. thus, we don't end up with overflow + a <<= 62; + b <<= 62; + + // a is within [0, 2n), so a << 62 is within [0, 2^63 n). Thus, (when we calculate a / n, it must be within [0, 2^63) + UInt128 differingBits = (a / n) ^ (b / n); + ASSERT(!(differingBits >> 64)); + return clz(static_cast(differingBits)); + }; + auto to = dst; auto from = src; - for (size_t i = 0; i < src.size(); i += initialWidth) { - arrayInsertionSort(vm, from.subspan(i, std::min(i + initialWidth, src.size()) - i), comparator); + WTF::copyElements(to, spanConstCast(from)); + + struct PowersortStackEntry { + SortedRun run; + unsigned power; + }; + + WTF::Vector powerstack; + // floor(lg(n)) + 1 + powerstack.reserveCapacity(8 * sizeof(numElements) - WTF::clz(numElements)); + + SortedRun run1 { 0, 0 }; + + // ExtendRunRight(run1.start, n) + while (run1.m_end + 1 < numElements) { + bool result = comparator(from[run1.m_end + 1], from[run1.m_end]); RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, src); + if (result) + break; + ++run1.m_end; } - for (size_t width = initialWidth; width < src.size(); width *= 2) { - for (size_t srcIndex = 0; srcIndex < src.size(); srcIndex += 2 * width) { - arrayMerge(vm, to, spanConstCast(from), srcIndex, src.size(), width, comparator); + if (run1.m_end - run1.m_begin < extendRunCutoff) { + // If the run is too short, insertion sort a bit + auto size = std::min(forceRunLength, numElements - run1.m_begin); + arrayInsertionSort(vm, from.subspan(run1.m_begin, size), comparator, run1.m_end - run1.m_begin); + RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, src); + run1.m_end = run1.m_begin + size - 1; + } + + // See if we can extend the run any more. + while (run1.m_end + 1 < numElements) { + bool result = comparator(from[run1.m_end + 1], from[run1.m_end]); + RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, src); + if (result) + break; + ++run1.m_end; + } + + while (run1.m_end + 1 < numElements) { + SortedRun run2 { run1.m_end + 1, run1.m_end + 1 }; + + // ExtendRunRight(run2.start, n) + while (run2.m_end + 1 < numElements) { + bool result = comparator(from[run2.m_end + 1], from[run2.m_end]); + RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, src); + if (result) + break; + ++run2.m_end; + } + + if (run2.m_end - run2.m_begin < extendRunCutoff) { + // If the run is too short, insertion sort a bit + auto size = std::min(forceRunLength, numElements - run2.m_begin); + arrayInsertionSort(vm, from.subspan(run2.m_begin, size), comparator, run2.m_end - run2.m_begin); + RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, src); + run2.m_end = run2.m_begin + size - 1; + } + + // See if we can extend the run any more. + while (run2.m_end + 1 < numElements) { + bool result = comparator(from[run2.m_end + 1], from[run2.m_end]); RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, src); + if (result) + break; + ++run2.m_end; + } + + unsigned p = power(run1.m_begin, run2.m_begin, run2.m_end, numElements); + while (!powerstack.isEmpty() && powerstack.last().power > p) { + auto rangeToMerge = powerstack.takeLast().run; + ASSERT(rangeToMerge.m_end == run1.m_begin - 1); + + mergePowersortRuns(vm, to, spanConstCast(from), rangeToMerge.m_begin, rangeToMerge.m_end + 1, run1.m_begin, run1.m_end + 1, comparator); + RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, src); + WTF::copyElements(from.subspan(rangeToMerge.m_begin, run1.m_end + 1 - rangeToMerge.m_begin), spanConstCast(to).subspan(rangeToMerge.m_begin, run1.m_end + 1 - rangeToMerge.m_begin)); + run1.m_begin = rangeToMerge.m_begin; } - std::swap(to, from); + + powerstack.append({ run1, p }); + run1 = run2; + } + + while (!powerstack.isEmpty()) { + auto rangeToMerge = powerstack.takeLast().run; + ASSERT(rangeToMerge.m_end == run1.m_begin - 1); + + mergePowersortRuns(vm, to, spanConstCast(from), rangeToMerge.m_begin, rangeToMerge.m_end + 1, run1.m_begin, run1.m_end + 1, comparator); + RETURN_IF_EXCEPTION_WITH_TRAPS_DEFERRED(scope, src); + WTF::copyElements(from.subspan(rangeToMerge.m_begin, run1.m_end + 1 - rangeToMerge.m_begin), spanConstCast(to).subspan(rangeToMerge.m_begin, run1.m_end + 1 - rangeToMerge.m_begin)); + run1.m_begin = rangeToMerge.m_begin; } return from.data() == src.data() ? src : dst; diff --git a/Source/JavaScriptCore/runtime/VM.cpp b/Source/JavaScriptCore/runtime/VM.cpp index 84b85dc9e1659..c3bb4fa3f93d8 100644 --- a/Source/JavaScriptCore/runtime/VM.cpp +++ b/Source/JavaScriptCore/runtime/VM.cpp @@ -220,7 +220,7 @@ static bool vmCreationShouldCrash = false; VM::VM(VMType vmType, HeapType heapType, WTF::RunLoop* runLoop, bool* success) : topCallFrame(CallFrame::noCaller()) , m_identifier(VMIdentifier::generate()) - , m_apiLock(adoptRef(new JSLock(this))) + , m_apiLock(adoptRef(*new JSLock(this))) , m_runLoop(runLoop ? *runLoop : WTF::RunLoop::current()) , m_random(Options::seedOfVMRandomForFuzzer() ? Options::seedOfVMRandomForFuzzer() : cryptographicallyRandomNumber()) , m_heapRandom(Options::seedOfVMRandomForFuzzer() ? Options::seedOfVMRandomForFuzzer() : cryptographicallyRandomNumber()) @@ -278,7 +278,7 @@ VM::VM(VMType vmType, HeapType heapType, WTF::RunLoop* runLoop, bool* success) setLastStackTop(Thread::current()); stringSplitIndice.reserveInitialCapacity(256); - JSRunLoopTimer::Manager::shared().registerVM(*this); + JSRunLoopTimer::Manager::singleton().registerVM(*this); // Need to be careful to keep everything consistent here JSLockHolder lock(this); @@ -410,8 +410,8 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_END setShouldBuildPCToCodeOriginMapping(); if (Options::watchdog()) { - Watchdog& watchdog = ensureWatchdog(); - watchdog.setTimeLimit(Seconds::fromMilliseconds(Options::watchdog())); + Ref watchdog = ensureWatchdog(); + watchdog->setTimeLimit(Seconds::fromMilliseconds(Options::watchdog())); } if (Options::useTracePoints()) @@ -465,7 +465,7 @@ VM::~VM() if (Wasm::Worklist* worklist = Wasm::existingWorklistOrNull()) worklist->stopAllPlansForContext(*this); #endif - if (auto* watchdog = this->watchdog(); UNLIKELY(watchdog)) + if (RefPtr watchdog = this->watchdog(); UNLIKELY(watchdog)) watchdog->willDestroyVM(this); m_traps.willDestroyVM(); m_isInService = false; @@ -499,7 +499,7 @@ VM::~VM() smallStrings.setIsInitialized(false); heap.lastChanceToFinalize(); - JSRunLoopTimer::Manager::shared().unregisterVM(*this); + JSRunLoopTimer::Manager::singleton().unregisterVM(*this); VMInspector::singleton().remove(this); @@ -582,7 +582,7 @@ RefPtr VM::tryCreate(HeapType heapType, WTF::RunLoop* runLoop) SamplingProfiler& VM::ensureSamplingProfiler(Ref&& stopwatch) { if (!m_samplingProfiler) { - m_samplingProfiler = adoptRef(new SamplingProfiler(*this, WTFMove(stopwatch))); + lazyInitialize(m_samplingProfiler, adoptRef(*new SamplingProfiler(*this, WTFMove(stopwatch)))); requestEntryScopeService(EntryScopeService::SamplingProfiler); } return *m_samplingProfiler; @@ -590,7 +590,7 @@ SamplingProfiler& VM::ensureSamplingProfiler(Ref&& stopwatch) void VM::enableSamplingProfiler() { - SamplingProfiler* profiler = samplingProfiler(); + RefPtr profiler = samplingProfiler(); if (!profiler) profiler = &ensureSamplingProfiler(Stopwatch::create()); profiler->start(); @@ -598,7 +598,7 @@ void VM::enableSamplingProfiler() void VM::disableSamplingProfiler() { - SamplingProfiler* profiler = samplingProfiler(); + RefPtr profiler = samplingProfiler(); if (!profiler) profiler = &ensureSamplingProfiler(Stopwatch::create()); { @@ -609,10 +609,8 @@ void VM::disableSamplingProfiler() RefPtr VM::takeSamplingProfilerSamplesAsJSON() { - SamplingProfiler* profiler = samplingProfiler(); - if (!profiler) - return nullptr; - return profiler->stackTracesAsJSON(); + RefPtr profiler = samplingProfiler(); + return profiler ? RefPtr { profiler->stackTracesAsJSON() } : nullptr; } #endif // ENABLE(SAMPLING_PROFILER) @@ -714,33 +712,33 @@ static Ref jitCodeForCallTrampoline(Intrinsic intrinsic) switch (intrinsic) { #if ENABLE(WEBASSEMBLY) case WasmFunctionIntrinsic: { - static NativeJITCode* result; + static LazyNeverDestroyed> result; static std::once_flag onceKey; std::call_once(onceKey, [&] { - result = new NativeJITCode(LLInt::getCodeRef(js_to_wasm_wrapper_entry), JITType::HostCallThunk, intrinsic); + result.construct(adoptRef(*new NativeJITCode(LLInt::getCodeRef(js_to_wasm_wrapper_entry), JITType::HostCallThunk, intrinsic))); }); - return *result; + return result.get(); } #endif default: { - static NativeJITCode* result; + static LazyNeverDestroyed> result; static std::once_flag onceKey; std::call_once(onceKey, [&] { - result = new NativeJITCode(LLInt::getCodeRef(llint_native_call_trampoline), JITType::HostCallThunk, NoIntrinsic); + result.construct(adoptRef(*new NativeJITCode(LLInt::getCodeRef(llint_native_call_trampoline), JITType::HostCallThunk, NoIntrinsic))); }); - return *result; + return result.get(); } } } static Ref jitCodeForConstructTrampoline() { - static NativeJITCode* result; + static LazyNeverDestroyed> result; static std::once_flag onceKey; std::call_once(onceKey, [&] { - result = new NativeJITCode(LLInt::getCodeRef(llint_native_construct_trampoline), JITType::HostCallThunk, NoIntrinsic); + result.construct(adoptRef(*new NativeJITCode(LLInt::getCodeRef(llint_native_construct_trampoline), JITType::HostCallThunk, NoIntrinsic))); }); - return *result; + return result.get(); } NativeExecutable* VM::getHostFunction(NativeFunction function, ImplementationVisibility implementationVisibility, Intrinsic intrinsic, NativeFunction constructor, const DOMJIT::Signature* signature, const String& name) @@ -1074,7 +1072,7 @@ void VM::updateStackLimits() if (heap.m_webAssemblyInstanceSpace) { heap.m_webAssemblyInstanceSpace->forEachLiveCell([&] (HeapCell* cell, HeapCell::Kind kind) { ASSERT_UNUSED(kind, kind == HeapCell::JSCell); - static_cast(cell)->updateSoftStackLimit(m_softStackLimit); + SUPPRESS_MEMORY_UNSAFE_CAST static_cast(cell)->updateSoftStackLimit(m_softStackLimit); }); } #endif @@ -1366,11 +1364,11 @@ void VM::drainMicrotasks() void sanitizeStackForVM(VM& vm) { + Ref thread = Thread::current(); + auto& stack = thread->stack(); if (!vm.currentThreadIsHoldingAPILock()) return; // vm.lastStackTop() may not be set up correctly if JSLock is not held. - auto& thread = Thread::current(); - auto& stack = thread.stack(); logSanitizeStack(vm); RELEASE_ASSERT(stack.contains(vm.lastStackTop()), 0xaa10, vm.lastStackTop(), stack.origin(), stack.end()); @@ -1528,12 +1526,12 @@ void VM::executeEntryScopeServicesOnEntry() // observe time zone changes. dateCache.resetIfNecessary(); - auto* watchdog = this->watchdog(); + RefPtr watchdog = this->watchdog(); if (UNLIKELY(watchdog)) watchdog->enteredVM(); #if ENABLE(SAMPLING_PROFILER) - auto* samplingProfiler = this->samplingProfiler(); + RefPtr samplingProfiler = this->samplingProfiler(); if (UNLIKELY(samplingProfiler)) samplingProfiler->noticeVMEntry(); #endif @@ -1547,7 +1545,7 @@ void VM::executeEntryScopeServicesOnExit() if (UNLIKELY(Options::useTracePoints())) tracePoint(VMEntryScopeEnd); - auto* watchdog = this->watchdog(); + RefPtr watchdog = this->watchdog(); if (UNLIKELY(watchdog)) watchdog->exitedVM(); diff --git a/Source/JavaScriptCore/runtime/VM.h b/Source/JavaScriptCore/runtime/VM.h index b47115196634f..aa5674923a6ab 100644 --- a/Source/JavaScriptCore/runtime/VM.h +++ b/Source/JavaScriptCore/runtime/VM.h @@ -445,7 +445,7 @@ class VM : public ThreadSafeRefCountedWithSuppressingSaferCPPChecking, publi VMTraps m_traps; VMIdentifier m_identifier; - RefPtr m_apiLock; + const Ref m_apiLock; Ref m_runLoop; WeakRandom m_random; @@ -576,7 +576,7 @@ class VM : public ThreadSafeRefCountedWithSuppressingSaferCPPChecking, publi Weak m_fastRemoteFunctionExecutable; Weak m_slowRemoteFunctionExecutable; - Ref deferredWorkTimer; + const Ref deferredWorkTimer; JSCell* currentlyDestructingCallbackObject { nullptr }; const ClassInfo* currentlyDestructingCallbackObjectClassInfo { nullptr }; @@ -891,7 +891,7 @@ class VM : public ThreadSafeRefCountedWithSuppressingSaferCPPChecking, publi bool currentThreadIsHoldingAPILock() const { return m_apiLock->currentThreadIsHoldingLock(); } - JSLock& apiLock() { return *m_apiLock; } + JSLock& apiLock() { return m_apiLock.get(); } CodeCache* codeCache() { return m_codeCache.get(); } IntlCache& intlCache() { return *m_intlCache; } @@ -1147,7 +1147,7 @@ class VM : public ThreadSafeRefCountedWithSuppressingSaferCPPChecking, publi LazyUniqueRef m_heapProfiler; LazyUniqueRef m_stringSearcherTables; #if ENABLE(SAMPLING_PROFILER) - RefPtr m_samplingProfiler; + const RefPtr m_samplingProfiler; #endif std::unique_ptr m_fuzzerAgent; LazyUniqueRef m_shadowChicken; diff --git a/Source/JavaScriptCore/wasm/js/WasmToJS.cpp b/Source/JavaScriptCore/wasm/js/WasmToJS.cpp index 50a39fb009a9c..d1f3253126a14 100644 --- a/Source/JavaScriptCore/wasm/js/WasmToJS.cpp +++ b/Source/JavaScriptCore/wasm/js/WasmToJS.cpp @@ -224,7 +224,7 @@ Expected, BindingFailure> wasmToJS(TypeIn unsigned frOffset = CallFrameSlot::firstArgument * static_cast(sizeof(Register)); auto marshallFPR = [&] (FPRReg fprReg) { - jit.purifyNaN(fprReg); + jit.purifyNaN(fprReg, fprReg); #if USE(JSVALUE64) jit.moveDoubleTo64(fprReg, scratch); materializeDoubleEncodeOffset(doubleEncodeOffsetGPRReg); diff --git a/Source/JavaScriptCore/yarr/YarrJIT.cpp b/Source/JavaScriptCore/yarr/YarrJIT.cpp index 5da9cdcac26b3..c431b11db5bc9 100644 --- a/Source/JavaScriptCore/yarr/YarrJIT.cpp +++ b/Source/JavaScriptCore/yarr/YarrJIT.cpp @@ -317,13 +317,17 @@ class YarrGenerator final : public YarrJITInfo { MatchSuccessFallThrough = PreferMatchFailed }; + MatchTargets(PreferredTarget preferredTarget = PreferredTarget::NoPreference) + : m_preferredTarget(preferredTarget) + { } + MatchTargets(MacroAssembler::JumpList& matchDest) : m_matchSucceededTargets(&matchDest) , m_preferredTarget(PreferredTarget::PreferMatchSucceeded) { } MatchTargets(MacroAssembler::JumpList& compareDest, PreferredTarget preferredTarget) - : m_preferredTarget(&preferredTarget) + : m_preferredTarget(preferredTarget) { if (preferredTarget == PreferredTarget::PreferMatchFailed) m_matchFailedTargets = &compareDest; @@ -1077,7 +1081,8 @@ class YarrGenerator final : public YarrJITInfo { m_jit.load16Unaligned(address, resultReg); } - MacroAssembler::Jump jumpIfCharNotEquals(char32_t ch, Checked negativeCharacterOffset, MacroAssembler::RegisterID character, bool ignoreCase) + template + MacroAssembler::Jump jumpIfCharCond(char32_t ch, Checked negativeCharacterOffset, MacroAssembler::RegisterID character, bool ignoreCase) { readCharacter(negativeCharacterOffset, character); @@ -1089,7 +1094,17 @@ class YarrGenerator final : public YarrJITInfo { ch |= 0x20; } - return m_jit.branch32(MacroAssembler::NotEqual, character, MacroAssembler::Imm32(ch)); + return m_jit.branch32(cond, character, MacroAssembler::Imm32(ch)); + } + + MacroAssembler::Jump jumpIfCharNotEquals(char32_t ch, Checked negativeCharacterOffset, MacroAssembler::RegisterID character, bool ignoreCase) + { + return jumpIfCharCond(ch, negativeCharacterOffset, character, ignoreCase); + } + + MacroAssembler::Jump jumpIfCharEquals(char32_t ch, Checked negativeCharacterOffset, MacroAssembler::RegisterID character, bool ignoreCase) + { + return jumpIfCharCond(ch, negativeCharacterOffset, character, ignoreCase); } void storeToFrame(MacroAssembler::RegisterID reg, unsigned frameLocation) @@ -1248,6 +1263,15 @@ class YarrGenerator final : public YarrJITInfo { SimpleNestedAlternativeBegin, SimpleNestedAlternativeNext, SimpleNestedAlternativeEnd, + // Used for alternatives in subpatterns where there is a list of BOL anchored + // string alternatives. Such a string list doesn't need backtracking. If the + // pattern is also EOL anchored, e.g. /^(?:cat|dog|doggy)$/, the list of strings + // needs to be sorted such that all longer strings with a prefix prior in the + // list appear first. In the example, we'd sort the alternatives to something + // like: /^(?:cat|doggy|dog)$/. This elimnates the need to backktrack. + StringListAlternativeBegin, + StringListAlternativeNext, + StringListAlternativeEnd, // Used to wrap 'Once' subpattern matches (quantityMaxCount == 1). ParenthesesSubpatternOnceBegin, ParenthesesSubpatternOnceEnd, @@ -1956,13 +1980,16 @@ class YarrGenerator final : public YarrJITInfo { } #endif - void generatePatternCharacterOnce(size_t opIndex) + void generatePatternCharacterOnce(size_t opIndex, MatchTargets& matchTargets) { YarrOp& op = m_ops[opIndex]; if (op.m_isDeadCode) return; - + + MatchTargets defaultMatchTargets(matchTargets.hasFailedTarget() ? matchTargets.matchFailed() : op.m_jumps, MatchTargets::PreferredTarget::MatchSuccessFallThrough); + MatchTargets lastMatchTargets(matchTargets.matchSucceeded(), matchTargets.hasFailedTarget() ? matchTargets.matchFailed() : op.m_jumps, matchTargets.preferredTarget()); + // m_ops always ends with a YarrOpCode::BodyAlternativeEnd or YarrOpCode::MatchFailed // node, so there must always be at least one more node. ASSERT(opIndex + 1 < m_ops.size()); @@ -1973,7 +2000,7 @@ class YarrGenerator final : public YarrJITInfo { if (!isLatin1(ch) && (m_charSize == CharSize::Char8)) { // Have a 16 bit pattern character and an 8 bit string - short circuit - op.m_jumps.append(m_jit.jump()); + defaultMatchTargets.appendFailed(m_jit.jump()); return; } @@ -2028,7 +2055,7 @@ class YarrGenerator final : public YarrJITInfo { if (!isLatin1(currentCharacter) && (m_charSize == CharSize::Char8)) { // Have a 16 bit pattern character and an 8 bit string - short circuit - op.m_jumps.append(m_jit.jump()); + defaultMatchTargets.appendFailed(m_jit.jump()); return; } @@ -2050,127 +2077,172 @@ class YarrGenerator final : public YarrJITInfo { } #endif + // Start with defaultMatchTargets and then prove that we are handling the last + // PatternCharacter fixed size 1 term in the list. + bool isLastCharOnce = false; + if (m_ops.size() < opIndex + numberCharacters + 1) + isLastCharOnce = true; + else { + YarrOp* followingOp = &m_ops[opIndex + numberCharacters]; + if (followingOp->m_op != YarrOpCode::Term) + isLastCharOnce = true; + else if (followingOp->m_term->type == PatternTerm::Type::AssertionEOL + && m_ops.size() > opIndex + numberCharacters + 1 + && m_ops[opIndex + numberCharacters + 1].m_op != YarrOpCode::Term) + isLastCharOnce = true; + } + MatchTargets* matchTargetForFinalComparison = isLastCharOnce ? &lastMatchTargets : &defaultMatchTargets; + if (m_decodeSurrogatePairs) - op.m_jumps.append(jumpIfNoAvailableInput()); + defaultMatchTargets.appendFailed(jumpIfNoAvailableInput()); if (m_charSize == CharSize::Char8) { - auto check1 = [&] (Checked offset, char32_t characters) { - op.m_jumps.append(jumpIfCharNotEquals(characters, offset, character, term->ignoreCase())); + auto check1 = [&] (Checked offset, char32_t characters, MatchTargets& matchTargets) { + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(jumpIfCharNotEquals(characters, offset, character, term->ignoreCase())); + else + matchTargets.appendSucceeded(jumpIfCharEquals(characters, offset, character, term->ignoreCase())); }; - auto check2 = [&] (Checked offset, uint16_t characters, uint16_t mask) { + auto check2 = [&] (Checked offset, uint16_t characters, uint16_t mask, MatchTargets& matchTargets) { m_jit.load16Unaligned(negativeOffsetIndexedAddress(offset, character), character); if (mask) m_jit.or32(MacroAssembler::Imm32(mask), character); - op.m_jumps.append(m_jit.branch32(MacroAssembler::NotEqual, character, MacroAssembler::Imm32(characters | mask))); + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(m_jit.branch32(MacroAssembler::NotEqual, character, MacroAssembler::Imm32(characters | mask))); + else + matchTargets.appendSucceeded(m_jit.branch32(MacroAssembler::Equal, character, MacroAssembler::Imm32(characters | mask))); }; - auto check4 = [&] (Checked offset, unsigned characters, unsigned mask) { + auto check4 = [&] (Checked offset, unsigned characters, unsigned mask, MatchTargets& matchTargets) { if (mask) { m_jit.load32WithUnalignedHalfWords(negativeOffsetIndexedAddress(offset, character), character); if (mask) m_jit.or32(MacroAssembler::Imm32(mask), character); - op.m_jumps.append(m_jit.branch32(MacroAssembler::NotEqual, character, MacroAssembler::Imm32(characters | mask))); + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(m_jit.branch32(MacroAssembler::NotEqual, character, MacroAssembler::Imm32(characters | mask))); + else + matchTargets.appendSucceeded(m_jit.branch32(MacroAssembler::Equal, character, MacroAssembler::Imm32(characters | mask))); return; } - op.m_jumps.append(m_jit.branch32WithUnalignedHalfWords(MacroAssembler::NotEqual, negativeOffsetIndexedAddress(offset, character), MacroAssembler::TrustedImm32(characters))); + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(m_jit.branch32WithUnalignedHalfWords(MacroAssembler::NotEqual, negativeOffsetIndexedAddress(offset, character), MacroAssembler::TrustedImm32(characters))); + else + matchTargets.appendSucceeded(m_jit.branch32WithUnalignedHalfWords(MacroAssembler::Equal, negativeOffsetIndexedAddress(offset, character), MacroAssembler::TrustedImm32(characters))); }; #if CPU(X86_64) || CPU(ARM64) || CPU(RISCV64) - auto check8 = [&] (Checked offset, uint64_t characters, uint64_t mask) { + auto check8 = [&] (Checked offset, uint64_t characters, uint64_t mask, MatchTargets& matchTargets) { m_jit.load64(negativeOffsetIndexedAddress(offset, character), character); if (mask) m_jit.or64(MacroAssembler::TrustedImm64(mask), character); - op.m_jumps.append(m_jit.branch64(MacroAssembler::NotEqual, character, MacroAssembler::TrustedImm64(characters | mask))); + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(m_jit.branch64(MacroAssembler::NotEqual, character, MacroAssembler::TrustedImm64(characters | mask))); + else + matchTargets.appendSucceeded(m_jit.branch64(MacroAssembler::Equal, character, MacroAssembler::TrustedImm64(characters | mask))); }; #endif switch (numberCharacters) { case 1: // Use 32bit width of allCharacters since Yarr counts surrogate pairs as one character with unicode flag. - check1(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff); + check1(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, *matchTargetForFinalComparison); return; case 2: { - check2(op.m_checkedOffset - startTermPosition, allCharacters & 0xffff, ignoreCaseMask & 0xffff); + check2(op.m_checkedOffset - startTermPosition, allCharacters & 0xffff, ignoreCaseMask & 0xffff, lastMatchTargets); return; } case 3: { - check2(op.m_checkedOffset - startTermPosition, allCharacters & 0xffff, ignoreCaseMask & 0xffff); - check1(op.m_checkedOffset - startTermPosition - 2, (allCharacters >> 16) & 0xff); + check2(op.m_checkedOffset - startTermPosition, allCharacters & 0xffff, ignoreCaseMask & 0xffff, defaultMatchTargets); + check1(op.m_checkedOffset - startTermPosition - 2, (allCharacters >> 16) & 0xff, *matchTargetForFinalComparison); return; } case 4: { - check4(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff); + check4(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff, *matchTargetForFinalComparison); return; } #if CPU(X86_64) || CPU(ARM64) || CPU(RISCV64) case 5: { - check4(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff); - check1(op.m_checkedOffset - startTermPosition - 4, (allCharacters >> 32) & 0xff); + check4(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff, defaultMatchTargets); + check1(op.m_checkedOffset - startTermPosition - 4, (allCharacters >> 32) & 0xff, *matchTargetForFinalComparison); return; } case 6: { - check4(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff); - check2(op.m_checkedOffset - startTermPosition - 4, (allCharacters >> 32) & 0xffff, (ignoreCaseMask >> 32) & 0xffff); + check4(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff, defaultMatchTargets); + check2(op.m_checkedOffset - startTermPosition - 4, (allCharacters >> 32) & 0xffff, (ignoreCaseMask >> 32) & 0xffff, *matchTargetForFinalComparison); return; } case 7: { - check4(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff); - check2(op.m_checkedOffset - startTermPosition - 4, (allCharacters >> 32) & 0xffff, (ignoreCaseMask >> 32) & 0xffff); - check1(op.m_checkedOffset - startTermPosition - 6, (allCharacters >> 48) & 0xff); + check4(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff, defaultMatchTargets); + check2(op.m_checkedOffset - startTermPosition - 4, (allCharacters >> 32) & 0xffff, (ignoreCaseMask >> 32) & 0xffff, defaultMatchTargets); + check1(op.m_checkedOffset - startTermPosition - 6, (allCharacters >> 48) & 0xff, *matchTargetForFinalComparison); return; } case 8: { - check8(op.m_checkedOffset - startTermPosition, allCharacters, ignoreCaseMask); + check8(op.m_checkedOffset - startTermPosition, allCharacters, ignoreCaseMask, *matchTargetForFinalComparison); return; } #endif } } else { - auto check1 = [&] (Checked offset, char32_t characters) { - op.m_jumps.append(jumpIfCharNotEquals(characters, offset, character, term->ignoreCase())); + auto check1 = [&] (Checked offset, char32_t characters, MatchTargets& matchTargets) { + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(jumpIfCharNotEquals(characters, offset, character, term->ignoreCase())); + else + matchTargets.appendSucceeded(jumpIfCharEquals(characters, offset, character, term->ignoreCase())); }; - auto check2 = [&] (Checked offset, unsigned characters, unsigned mask) { + auto check2 = [&] (Checked offset, unsigned characters, unsigned mask, MatchTargets& matchTargets) { if (mask) { m_jit.load32WithUnalignedHalfWords(negativeOffsetIndexedAddress(offset, character), character); if (mask) m_jit.or32(MacroAssembler::Imm32(mask), character); - op.m_jumps.append(m_jit.branch32(MacroAssembler::NotEqual, character, MacroAssembler::Imm32(characters | mask))); + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(m_jit.branch32(MacroAssembler::NotEqual, character, MacroAssembler::Imm32(characters | mask))); + else + matchTargets.appendSucceeded(m_jit.branch32(MacroAssembler::Equal, character, MacroAssembler::Imm32(characters | mask))); + return; } - op.m_jumps.append(m_jit.branch32WithUnalignedHalfWords(MacroAssembler::NotEqual, negativeOffsetIndexedAddress(offset, character), MacroAssembler::TrustedImm32(characters))); + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(m_jit.branch32WithUnalignedHalfWords(MacroAssembler::NotEqual, negativeOffsetIndexedAddress(offset, character), MacroAssembler::TrustedImm32(characters))); + else + matchTargets.appendSucceeded(m_jit.branch32WithUnalignedHalfWords(MacroAssembler::Equal, negativeOffsetIndexedAddress(offset, character), MacroAssembler::TrustedImm32(characters))); }; #if CPU(X86_64) || CPU(ARM64) || CPU(RISCV64) - auto check4 = [&] (Checked offset, uint64_t characters, uint64_t mask) { + auto check4 = [&] (Checked offset, uint64_t characters, uint64_t mask, MatchTargets& matchTargets) { m_jit.load64(negativeOffsetIndexedAddress(offset, character), character); if (mask) m_jit.or64(MacroAssembler::TrustedImm64(mask), character); - op.m_jumps.append(m_jit.branch64(MacroAssembler::NotEqual, character, MacroAssembler::TrustedImm64(characters | mask))); + if (!matchTargets.hasSucceedTarget()) + defaultMatchTargets.appendFailed(m_jit.branch64(MacroAssembler::NotEqual, character, MacroAssembler::TrustedImm64(characters | mask))); + else + matchTargets.appendSucceeded(m_jit.branch64(MacroAssembler::Equal, character, MacroAssembler::TrustedImm64(characters | mask))); }; #endif switch (numberCharacters) { case 1: // Use 32bit width of allCharacters since Yarr counts surrogate pairs as one character with unicode flag. - check1(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff); + check1(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, *matchTargetForFinalComparison); return; case 2: - check2(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff); + check2(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff, *matchTargetForFinalComparison); return; #if CPU(X86_64) || CPU(ARM64) || CPU(RISCV64) case 3: - check2(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff); - check1(op.m_checkedOffset - startTermPosition - 2, (allCharacters >> 32) & 0xffff); + check2(op.m_checkedOffset - startTermPosition, allCharacters & 0xffffffff, ignoreCaseMask & 0xffffffff, defaultMatchTargets); + check1(op.m_checkedOffset - startTermPosition - 2, (allCharacters >> 32) & 0xffff, *matchTargetForFinalComparison); return; case 4: - check4(op.m_checkedOffset - startTermPosition, allCharacters, ignoreCaseMask); + check4(op.m_checkedOffset - startTermPosition, allCharacters, ignoreCaseMask, *matchTargetForFinalComparison); return; #endif } } } + void backtrackPatternCharacterOnce(size_t opIndex) { backtrackTermDefault(opIndex); @@ -2666,7 +2738,7 @@ class YarrGenerator final : public YarrJITInfo { // Code generation/backtracking for simple terms // (pattern characters, character classes, and assertions). // These methods farm out work to the set of functions above. - void generateTerm(size_t opIndex) + void generateTerm(size_t opIndex, MatchTargets& matchTargets) { YarrOp& op = m_ops[opIndex]; PatternTerm* term = op.m_term; @@ -2676,7 +2748,7 @@ class YarrGenerator final : public YarrJITInfo { switch (term->quantityType) { case QuantifierType::FixedCount: if (term->quantityMaxCount == 1) - generatePatternCharacterOnce(opIndex); + generatePatternCharacterOnce(opIndex, matchTargets); else generatePatternCharacterFixed(opIndex); break; @@ -2826,6 +2898,9 @@ class YarrGenerator final : public YarrJITInfo { // Forwards generate the matching code. ASSERT(m_ops.size()); size_t opIndex = 0; + Vector termMatchTargets; + + termMatchTargets.append(MatchTargets()); do { if (m_disassembler) @@ -2835,7 +2910,7 @@ class YarrGenerator final : public YarrJITInfo { switch (op.m_op) { case YarrOpCode::Term: - generateTerm(opIndex); + generateTerm(opIndex, termMatchTargets.last()); break; // YarrOpCode::BodyAlternativeBegin/Next/End @@ -2863,6 +2938,8 @@ class YarrGenerator final : public YarrJITInfo { case YarrOpCode::BodyAlternativeBegin: { PatternAlternative* alternative = op.m_alternative; + termMatchTargets.append(MatchTargets()); + // Upon entry at the head of the set of alternatives, check if input is available // to run the first alternative. (This progresses the input position). op.m_jumps.append(jumpIfNoAvailableInput(alternative->m_minimumSize)); @@ -2977,6 +3054,9 @@ class YarrGenerator final : public YarrJITInfo { PatternAlternative* priorAlternative = m_ops[op.m_previousOp].m_alternative; PatternAlternative* alternative = op.m_alternative; + if (op.m_op == YarrOpCode::BodyAlternativeEnd) + termMatchTargets.takeLast(); + // If we get here, the prior alternative matched - return success. // Adjust the stack pointer to remove the pattern's frame. @@ -3031,6 +3111,7 @@ class YarrGenerator final : public YarrJITInfo { } // YarrOpCode::SimpleNestedAlternativeBegin/Next/End + // YarrOpCode::StringListAlternativeBegin/Next/End // YarrOpCode::NestedAlternativeBegin/Next/End // // These nodes are used to handle sets of alternatives that are nested within @@ -3047,11 +3128,23 @@ class YarrGenerator final : public YarrJITInfo { // 'return address' using a DataLabelPtr, used to store the address to jump // to when backtracking, to get to the code for the appropriate alternative. case YarrOpCode::SimpleNestedAlternativeBegin: + case YarrOpCode::StringListAlternativeBegin: case YarrOpCode::NestedAlternativeBegin: { PatternTerm* term = op.m_term; PatternAlternative* alternative = op.m_alternative; PatternDisjunction* disjunction = term->parentheses.disjunction; + if (op.m_op == YarrOpCode::StringListAlternativeBegin) { + YarrOp* endOp = &m_ops[op.m_nextOp]; + while (endOp->m_nextOp != notFound) { + ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeNext || endOp->m_op == YarrOpCode::StringListAlternativeNext || endOp->m_op == YarrOpCode::NestedAlternativeNext); + endOp = &m_ops[endOp->m_nextOp]; + } + ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeEnd || endOp->m_op == YarrOpCode::StringListAlternativeEnd || endOp->m_op == YarrOpCode::NestedAlternativeEnd); + + termMatchTargets.last() = alternative->m_isLastAlternative ? MatchTargets(MatchTargets::PreferredTarget::MatchSuccessFallThrough) : MatchTargets(endOp->m_jumps, op.m_jumps, MatchTargets::PreferredTarget::MatchFailFallThrough); + } + // Calculate how much input we need to check for, and if non-zero check. op.m_checkAdjust = Checked(alternative->m_minimumSize); if ((term->quantityType == QuantifierType::FixedCount) && (term->type != PatternTerm::Type::ParentheticalAssertion)) @@ -3061,11 +3154,22 @@ class YarrGenerator final : public YarrJITInfo { break; } case YarrOpCode::SimpleNestedAlternativeNext: + case YarrOpCode::StringListAlternativeNext: case YarrOpCode::NestedAlternativeNext: { PatternTerm* term = op.m_term; PatternAlternative* alternative = op.m_alternative; PatternDisjunction* disjunction = term->parentheses.disjunction; + YarrOp* endOp = &m_ops[op.m_nextOp]; + while (endOp->m_nextOp != notFound) { + ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeNext || endOp->m_op == YarrOpCode::StringListAlternativeNext || endOp->m_op == YarrOpCode::NestedAlternativeNext); + endOp = &m_ops[endOp->m_nextOp]; + } + ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeEnd || endOp->m_op == YarrOpCode::StringListAlternativeEnd || endOp->m_op == YarrOpCode::NestedAlternativeEnd); + + if (op.m_op == YarrOpCode::StringListAlternativeNext) + termMatchTargets.last() = alternative->m_isLastAlternative ? MatchTargets(MatchTargets::PreferredTarget::MatchSuccessFallThrough) : MatchTargets(endOp->m_jumps, op.m_jumps, MatchTargets::PreferredTarget::MatchFailFallThrough); + // In the non-simple case, store a 'return address' so we can backtrack correctly. if (op.m_op == YarrOpCode::NestedAlternativeNext) { unsigned parenthesesFrameLocation = term->frameLocation; @@ -3078,21 +3182,17 @@ class YarrGenerator final : public YarrJITInfo { op.m_zeroLengthMatch = m_jit.branch32(MacroAssembler::Equal, m_regs.index, MacroAssembler::Address(MacroAssembler::stackPointerRegister, term->frameLocation * sizeof(void*))); } - // If we reach here then the last alternative has matched - jump to the - // End node, to skip over any further alternatives. - // - // FIXME: this is logically O(N^2) (though N can be expected to be very - // small). We could avoid this either by adding an extra jump to the JIT - // data structures, or by making backtracking code that jumps to Next - // alternatives are responsible for checking that input is available (if - // we didn't need to plant the input checks, then m_jumps would be free). - YarrOp* endOp = &m_ops[op.m_nextOp]; - while (endOp->m_nextOp != notFound) { - ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeNext || endOp->m_op == YarrOpCode::NestedAlternativeNext); - endOp = &m_ops[endOp->m_nextOp]; + if (op.m_op != YarrOpCode::StringListAlternativeNext) { + // If we reach here then the last alternative has matched - jump to the + // End node, to skip over any further alternatives. + // + // FIXME: this is logically O(N^2) (though N can be expected to be very + // small). We could avoid this either by adding an extra jump to the JIT + // data structures, or by making backtracking code that jumps to Next + // alternatives are responsible for checking that input is available (if + // we didn't need to plant the input checks, then m_jumps would be free). + endOp->m_jumps.append(m_jit.jump()); } - ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeEnd || endOp->m_op == YarrOpCode::NestedAlternativeEnd); - endOp->m_jumps.append(m_jit.jump()); // This is the entry point for the next alternative. op.m_reentry = m_jit.label(); @@ -3101,11 +3201,25 @@ class YarrGenerator final : public YarrJITInfo { op.m_checkAdjust = alternative->m_minimumSize; if ((term->quantityType == QuantifierType::FixedCount) && (term->type != PatternTerm::Type::ParentheticalAssertion)) op.m_checkAdjust -= disjunction->m_minimumSize; - if (op.m_checkAdjust) + if (op.m_op == YarrOpCode::StringListAlternativeNext) { + YarrOp* prevOp = &m_ops[op.m_previousOp]; + + prevOp->m_jumps.link(&m_jit); + prevOp->m_jumps.clear(); + op.m_jumps.link(&m_jit); + op.m_jumps.clear(); + auto lastCheckAdjust = prevOp->m_checkAdjust; + if (lastCheckAdjust > op.m_checkAdjust) + m_jit.sub32(MacroAssembler::Imm32(lastCheckAdjust - op.m_checkAdjust), m_regs.index); + else if (op.m_checkAdjust > lastCheckAdjust) + m_jit.add32(MacroAssembler::Imm32(op.m_checkAdjust - lastCheckAdjust), m_regs.index); + op.m_jumps.append(jumpIfNoAvailableInput()); + } else if (op.m_checkAdjust) op.m_jumps.append(jumpIfNoAvailableInput(op.m_checkAdjust)); break; } case YarrOpCode::SimpleNestedAlternativeEnd: + case YarrOpCode::StringListAlternativeEnd: case YarrOpCode::NestedAlternativeEnd: { PatternTerm* term = op.m_term; @@ -3135,6 +3249,9 @@ class YarrGenerator final : public YarrJITInfo { // quantity count of 1 (this covers fixed once, and ?/?? quantifiers). case YarrOpCode::ParenthesesSubpatternOnceBegin: { PatternTerm* term = op.m_term; + + termMatchTargets.append(MatchTargets()); + unsigned parenthesesFrameLocation = term->frameLocation; const MacroAssembler::RegisterID indexTemporary = m_regs.regT0; ASSERT(term->quantityMaxCount == 1); @@ -3185,6 +3302,8 @@ class YarrGenerator final : public YarrJITInfo { const MacroAssembler::RegisterID indexTemporary = m_regs.regT0; ASSERT(term->quantityMaxCount == 1); + termMatchTargets.takeLast(); + // If the nested alternative matched without consuming any characters, punt this back to the interpreter. // FIXME: Add ability for the YARR JIT to properly // handle nested expressions that can match without consuming characters @@ -3226,9 +3345,13 @@ class YarrGenerator final : public YarrJITInfo { // YarrOpCode::ParenthesesSubpatternTerminalBegin/End case YarrOpCode::ParenthesesSubpatternTerminalBegin: { PatternTerm* term = op.m_term; - ASSERT(term->quantityType == QuantifierType::Greedy); - ASSERT(term->quantityMaxCount == quantifyInfinite); ASSERT(!term->capture()); + if (term->quantityType == QuantifierType::Greedy) + ASSERT(term->quantityMaxCount == quantifyInfinite); + if (term->quantityType == QuantifierType::FixedCount) + ASSERT(term->quantityMaxCount == 1); + + termMatchTargets.append(MatchTargets()); // Upon entry set a label to loop back to. op.m_reentry = m_jit.label(); @@ -3242,6 +3365,8 @@ class YarrGenerator final : public YarrJITInfo { YarrOp& beginOp = m_ops[op.m_previousOp]; PatternTerm* term = op.m_term; + termMatchTargets.takeLast(); + // If the nested alternative matched without consuming any characters, punt this back to the interpreter. // FIXME: Add ability for the YARR JIT to properly // handle nested expressions that can match without consuming characters @@ -3262,6 +3387,8 @@ class YarrGenerator final : public YarrJITInfo { // // These nodes support generic subpatterns. case YarrOpCode::ParenthesesSubpatternBegin: { + termMatchTargets.append(MatchTargets()); + #if ENABLE(YARR_JIT_ALL_PARENS_EXPRESSIONS) PatternTerm* term = op.m_term; unsigned parenthesesFrameLocation = term->frameLocation; @@ -3324,6 +3451,8 @@ class YarrGenerator final : public YarrJITInfo { break; } case YarrOpCode::ParenthesesSubpatternEnd: { + termMatchTargets.takeLast(); + #if ENABLE(YARR_JIT_ALL_PARENS_EXPRESSIONS) PatternTerm* term = op.m_term; unsigned parenthesesFrameLocation = term->frameLocation; @@ -3388,6 +3517,8 @@ class YarrGenerator final : public YarrJITInfo { case YarrOpCode::ParentheticalAssertionBegin: { PatternTerm* term = op.m_term; + termMatchTargets.append(MatchTargets()); + // Store the current index - assertions should not update index, so // we will need to restore it upon a successful match. unsigned parenthesesFrameLocation = term->frameLocation; @@ -3400,6 +3531,8 @@ class YarrGenerator final : public YarrJITInfo { case YarrOpCode::ParentheticalAssertionEnd: { PatternTerm* term = op.m_term; + termMatchTargets.takeLast(); + // Restore the input index value. unsigned parenthesesFrameLocation = term->frameLocation; loadFromFrame(parenthesesFrameLocation + BackTrackInfoParentheticalAssertion::beginIndex(), m_regs.index); @@ -3426,6 +3559,8 @@ class YarrGenerator final : public YarrJITInfo { ++opIndex; } while (opIndex < m_ops.size()); + + termMatchTargets.takeLast(); } void backtrack() @@ -3694,6 +3829,7 @@ class YarrGenerator final : public YarrJITInfo { } // YarrOpCode::SimpleNestedAlternativeBegin/Next/End + // YarrOpCode::StringListAlternativeBegin/Next/End // YarrOpCode::NestedAlternativeBegin/Next/End // // Generate code for when we backtrack back out of an alternative into @@ -3706,13 +3842,15 @@ class YarrGenerator final : public YarrJITInfo { // alternative. case YarrOpCode::SimpleNestedAlternativeBegin: case YarrOpCode::SimpleNestedAlternativeNext: + case YarrOpCode::StringListAlternativeBegin: + case YarrOpCode::StringListAlternativeNext: case YarrOpCode::NestedAlternativeBegin: case YarrOpCode::NestedAlternativeNext: { YarrOp& nextOp = m_ops[op.m_nextOp]; bool isBegin = op.m_previousOp == notFound; bool isLastAlternative = nextOp.m_nextOp == notFound; - ASSERT(isBegin == (op.m_op == YarrOpCode::SimpleNestedAlternativeBegin || op.m_op == YarrOpCode::NestedAlternativeBegin)); - ASSERT(isLastAlternative == (nextOp.m_op == YarrOpCode::SimpleNestedAlternativeEnd || nextOp.m_op == YarrOpCode::NestedAlternativeEnd)); + ASSERT(isBegin == (op.m_op == YarrOpCode::SimpleNestedAlternativeBegin || op.m_op == YarrOpCode::StringListAlternativeBegin || op.m_op == YarrOpCode::NestedAlternativeBegin)); + ASSERT(isLastAlternative == (nextOp.m_op == YarrOpCode::SimpleNestedAlternativeEnd || nextOp.m_op == YarrOpCode::StringListAlternativeEnd || nextOp.m_op == YarrOpCode::NestedAlternativeEnd)); // Treat an input check failure the same as a failed match. m_backtrackingState.append(op.m_jumps); @@ -3738,18 +3876,20 @@ class YarrGenerator final : public YarrJITInfo { // backtracking to here, correct, and then jump on. If not we can // link the backtracks directly to their destination. if (op.m_checkAdjust) { - // Handle the cases where we need to link the backtracks here. - m_backtrackingState.link(&m_jit); - m_jit.sub32(MacroAssembler::Imm32(op.m_checkAdjust), m_regs.index); - if (!isLastAlternative) { - // An alternative that is not the last should jump to its successor. - m_jit.jump(nextOp.m_reentry); - } else if (!isBegin) { - // The last of more than one alternatives must jump back to the beginning. - nextOp.m_jumps.append(m_jit.jump()); - } else { - // A single alternative on its own can fall through. - m_backtrackingState.fallthrough(); + if (!m_backtrackingState.isEmpty()) { + // Handle the cases where we need to link the backtracks here. + m_backtrackingState.link(&m_jit); + m_jit.sub32(MacroAssembler::Imm32(op.m_checkAdjust), m_regs.index); + if (!isLastAlternative) { + // An alternative that is not the last should jump to its successor. + m_jit.jump(nextOp.m_reentry); + } else if (!isBegin) { + // The last of more than one alternatives must jump back to the beginning. + nextOp.m_jumps.append(m_jit.jump()); + } else { + // A single alternative on its own can fall through. + m_backtrackingState.fallthrough(); + } } } else { // Handle the cases where we can link the backtracks directly to their destinations. @@ -3781,15 +3921,16 @@ class YarrGenerator final : public YarrJITInfo { if (isBegin) { YarrOp* endOp = &m_ops[op.m_nextOp]; while (endOp->m_nextOp != notFound) { - ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeNext || endOp->m_op == YarrOpCode::NestedAlternativeNext); + ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeNext || endOp->m_op == YarrOpCode::StringListAlternativeNext || endOp->m_op == YarrOpCode::NestedAlternativeNext); endOp = &m_ops[endOp->m_nextOp]; } - ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeEnd || endOp->m_op == YarrOpCode::NestedAlternativeEnd); + ASSERT(endOp->m_op == YarrOpCode::SimpleNestedAlternativeEnd || endOp->m_op == YarrOpCode::StringListAlternativeEnd || endOp->m_op == YarrOpCode::NestedAlternativeEnd); m_backtrackingState.append(endOp->m_jumps); } break; } case YarrOpCode::SimpleNestedAlternativeEnd: + case YarrOpCode::StringListAlternativeEnd: case YarrOpCode::NestedAlternativeEnd: { PatternTerm* term = op.m_term; @@ -4139,8 +4280,13 @@ class YarrGenerator final : public YarrJITInfo { parenthesesBeginOpCode = YarrOpCode::ParenthesesSubpatternOnceBegin; parenthesesEndOpCode = YarrOpCode::ParenthesesSubpatternOnceEnd; - // If there is more than one alternative we cannot use the 'simple' nodes. - if (term->parentheses.disjunction->m_alternatives.size() != 1) { + if (term->parentheses.isStringList) { + // This is an anchored non-capturing string list parenthesis that can't backtrack, we use the 'string list' nodes. + alternativeBeginOpCode = YarrOpCode::StringListAlternativeBegin; + alternativeNextOpCode = YarrOpCode::StringListAlternativeNext; + alternativeEndOpCode = YarrOpCode::StringListAlternativeEnd; + } else if (term->parentheses.disjunction->m_alternatives.size() != 1) { + // Otherwise, check if there is more than one alternative. If so, we cannot use the 'simple' nodes. alternativeBeginOpCode = YarrOpCode::NestedAlternativeBegin; alternativeNextOpCode = YarrOpCode::NestedAlternativeNext; alternativeEndOpCode = YarrOpCode::NestedAlternativeEnd; @@ -5035,7 +5181,8 @@ class YarrGenerator final : public YarrJITInfo { } if (m_disassembler) { - m_jit.addLateLinkTask([=, this] (LinkBuffer& linkBuffer) { + // Disassemble after all link tasks are complete. + m_jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) { m_disassembler->dump(linkBuffer); }); } @@ -5284,6 +5431,10 @@ class YarrGenerator final : public YarrJITInfo { out.printf("SimpleNestedAlternativeBegin minimum-size:(%u),checked-offset:(%u)\n", op.m_alternative->m_minimumSize, op.m_checkedOffset.value()); return 1; + case YarrOpCode::StringListAlternativeBegin: + out.printf("StringListAlternativeBegin minimum-size:(%u),checked-offset:(%u)\n", op.m_alternative->m_minimumSize, op.m_checkedOffset.value()); + return 1; + case YarrOpCode::NestedAlternativeBegin: out.printf("NestedAlternativeBegin minimum-size:(%u),checked-offset:(%u)\n", op.m_alternative->m_minimumSize, op.m_checkedOffset.value()); return 1; @@ -5292,6 +5443,10 @@ class YarrGenerator final : public YarrJITInfo { out.printf("SimpleNestedAlternativeNext minimum-size:(%u),checked-offset:(%u)\n", op.m_alternative->m_minimumSize, op.m_checkedOffset.value()); return 0; + case YarrOpCode::StringListAlternativeNext: + out.printf("StringListAlternativeNext minimum-size:(%u),checked-offset:(%u)\n", op.m_alternative->m_minimumSize, op.m_checkedOffset.value()); + return 0; + case YarrOpCode::NestedAlternativeNext: out.printf("NestedAlternativeNext minimum-size:(%u),checked-offset:(%u)\n", op.m_alternative->m_minimumSize, op.m_checkedOffset.value()); return 0; @@ -5302,6 +5457,12 @@ class YarrGenerator final : public YarrJITInfo { out.print("\n"); return -1; + case YarrOpCode::StringListAlternativeEnd: + out.printf("StringListAlternativeEnd checked-offset:(%u) ", op.m_checkedOffset.value()); + term->dumpQuantifier(out); + out.print("\n"); + return -1; + case YarrOpCode::NestedAlternativeEnd: out.printf("NestedAlternativeEnd checked-offset:(%u) ", op.m_checkedOffset.value()); term->dumpQuantifier(out); diff --git a/Source/JavaScriptCore/yarr/YarrPattern.cpp b/Source/JavaScriptCore/yarr/YarrPattern.cpp index 5a8a710907fd4..e3915ed6de0fe 100644 --- a/Source/JavaScriptCore/yarr/YarrPattern.cpp +++ b/Source/JavaScriptCore/yarr/YarrPattern.cpp @@ -1417,8 +1417,9 @@ class YarrPatternConstructor { PatternTerm& lastTerm = m_alternative->lastTerm(); - unsigned numParenAlternatives = parenthesesDisjunction->m_alternatives.size(); unsigned numBOLAnchoredAlts = 0; + unsigned numParenAlternatives = parenthesesDisjunction->m_alternatives.size(); + ASSERT(numParenAlternatives); for (unsigned i = 0; i < numParenAlternatives; i++) { // Bubble up BOL flags @@ -1426,6 +1427,8 @@ class YarrPatternConstructor { numBOLAnchoredAlts++; } + parenthesesDisjunction->m_alternatives.last()->m_isLastAlternative = true; + if (numBOLAnchoredAlts) { m_alternative->m_containsBOL = true; // If all the alternatives in parens start with BOL, then so does this one @@ -1857,6 +1860,12 @@ class YarrPatternConstructor { // alternatives of the main body disjunction). // * where the parens are non-capturing, and quantified unbounded greedy (*). // * where the parens do not contain any capturing subpatterns. + // * Where the parens contains a BOL anchored non-captured subpattern with a single + // alternative of fixed strings, e.g. /^(?:foo|bar|baz). + // In such a case we can simplify matching a little more by stopping at the first + // matched string alternative, without jumping to backtracking doe to fixup offests. + // Instead we fixup the offsets, if needed, at the top of the next alternative's + // matching JIT code. void checkForTerminalParentheses() { // This check is much too crude; should be just checking whether the candidate @@ -1865,8 +1874,49 @@ class YarrPatternConstructor { return; Vector>& alternatives = m_pattern.m_body->m_alternatives; - for (size_t i = 0; i < alternatives.size(); ++i) { - Vector& terms = alternatives[i]->m_terms; + alternatives.last()->m_isLastAlternative = true; + + if (alternatives.size() == 1 && alternatives[0]->m_startsWithBOL) { + Vector& terms = alternatives[0]->m_terms; + + bool isStringList = false; + + if (terms.size() >= 2 + && terms[0].type == PatternTerm::Type::AssertionBOL + && terms[1].type == PatternTerm::Type::ParenthesesSubpattern + && terms[1].quantityType == QuantifierType::FixedCount + && terms[1].quantityMaxCount == 1 + && (terms.size() == 2 + || (terms.size() == 3 && terms[2].type == PatternTerm::Type::AssertionEOL))) { + // We start assuming this is a string list and then prove the negative. + isStringList = true; + + PatternTerm& term = terms[1]; + + PatternDisjunction* nestedDisjunction = term.parentheses.disjunction; + for (unsigned alt = 0; isStringList && alt < nestedDisjunction->m_alternatives.size(); ++alt) { + Vector& innerTerms = nestedDisjunction->m_alternatives[alt]->m_terms; + + for (size_t termIndex = 0; termIndex < innerTerms.size(); ++termIndex) { + PatternTerm& innerTerm = innerTerms[termIndex]; + if (innerTerm.type != PatternTerm::Type::PatternCharacter + || innerTerm.quantityType != QuantifierType::FixedCount + || innerTerm.quantityMaxCount != 1) { + isStringList = false; + break; + } + } + } + + term.parentheses.isStringList = isStringList; + } + + if (isStringList) + return; + } + + for (auto& alternative : alternatives) { + auto& terms = alternative->m_terms; if (terms.size()) { PatternTerm& term = terms.last(); if (term.type == PatternTerm::Type::ParenthesesSubpattern @@ -2440,6 +2490,8 @@ void PatternAlternative::dump(PrintStream& out, YarrPattern* thisPattern, unsign out.print(",starts with ^"); if (m_containsBOL) out.print(",contains ^"); + if (m_isLastAlternative) + out.print(", last alternative"); out.print("\n"); for (size_t i = 0; i < m_terms.size(); ++i) @@ -2563,6 +2615,9 @@ void PatternTerm::dump(PrintStream& out, YarrPattern* thisPattern, unsigned nest if (parentheses.isTerminal) out.print(",terminal"); + if (parentheses.isStringList) + out.print(",string-list"); + out.println(",frame location ", frameLocation); if (parentheses.disjunction->m_alternatives.size() > 1) { diff --git a/Source/JavaScriptCore/yarr/YarrPattern.h b/Source/JavaScriptCore/yarr/YarrPattern.h index 8080fe7840857..1ba02b6218ff2 100644 --- a/Source/JavaScriptCore/yarr/YarrPattern.h +++ b/Source/JavaScriptCore/yarr/YarrPattern.h @@ -234,6 +234,7 @@ struct PatternTerm { unsigned lastSubpatternId; bool isCopy : 1; bool isTerminal : 1; + bool isStringList : 1; } parentheses; struct { bool bolAnchor : 1; @@ -278,6 +279,7 @@ struct PatternTerm { parentheses.subpatternId = subpatternId; parentheses.isCopy = false; parentheses.isTerminal = false; + parentheses.isStringList = false; quantityType = QuantifierType::FixedCount; quantityMinCount = quantityMaxCount = 1; } @@ -426,6 +428,7 @@ struct PatternAlternative { , m_hasFixedSize(false) , m_startsWithBOL(false) , m_containsBOL(false) + , m_isLastAlternative(false) { } @@ -491,6 +494,7 @@ struct PatternAlternative { bool m_hasFixedSize : 1; bool m_startsWithBOL : 1; bool m_containsBOL : 1; + bool m_isLastAlternative : 1; }; struct PatternDisjunction { diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/InfoSink.h b/Source/ThirdParty/ANGLE/src/compiler/translator/InfoSink.h index 8d3b1c0cf16e7..680e5cbb38886 100644 --- a/Source/ThirdParty/ANGLE/src/compiler/translator/InfoSink.h +++ b/Source/ThirdParty/ANGLE/src/compiler/translator/InfoSink.h @@ -21,6 +21,9 @@ class TSymbol; class TType; // Returns the fractional part of the given floating-point number. +#ifdef WK_WORKAROUND_RDAR_145268301_ASAN_STACK_USE_AFTER_SCOPE +__attribute__((no_sanitize_address)) +#endif inline float fractionalPart(float f) { float intPart = 0.0f; diff --git a/Source/WTF/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations b/Source/WTF/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations index 8751c0164bc56..b722be6857661 100644 --- a/Source/WTF/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations +++ b/Source/WTF/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations @@ -1,6 +1,5 @@ wtf/Ref.h wtf/RefPtr.h wtf/ThreadSpecific.h -wtf/Vector.h wtf/text/AtomStringImpl.cpp wtf/text/SymbolRegistry.cpp diff --git a/Source/WTF/SaferCPPExpectations/UncountedCallArgsCheckerExpectations b/Source/WTF/SaferCPPExpectations/UncountedCallArgsCheckerExpectations index ea187187aa394..9406390babae1 100644 --- a/Source/WTF/SaferCPPExpectations/UncountedCallArgsCheckerExpectations +++ b/Source/WTF/SaferCPPExpectations/UncountedCallArgsCheckerExpectations @@ -1,7 +1,6 @@ wtf/AutomaticThread.cpp wtf/JSONValues.cpp wtf/MemoryPressureHandler.cpp -wtf/NativePromise.h wtf/ParallelHelperPool.cpp wtf/PrintStream.h wtf/ThreadGroup.cpp diff --git a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml index 5c17a67cc17be..5cc2fa3b9e2d4 100644 --- a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml +++ b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml @@ -1186,6 +1186,20 @@ CSSContrastColorEnabled: WebCore: default: true +CSSCornerShapeEnabled: + type: bool + category: css + status: testable + humanReadableName: "CSS corner-shape property" + humanReadableDescription: "Enable support for CSS corner-shape property" + defaultValue: + WebKitLegacy: + default: false + WebKit: + default: false + WebCore: + default: false + CSSCounterStyleAtRuleImageSymbolsEnabled: type: bool status: testable @@ -2900,7 +2914,7 @@ ExposeSpeakersEnabled: condition: ENABLE(MEDIA_STREAM) defaultValue: WebKit: - "PLATFORM(MAC)": true + "PLATFORM(COCOA)": true default: false WebCore: default: false @@ -2914,7 +2928,7 @@ ExposeSpeakersWithoutMicrophoneEnabled: condition: ENABLE(MEDIA_STREAM) defaultValue: WebKit: - "PLATFORM(MAC)": true + "PLATFORM(COCOA)": true default: false WebCore: default: false @@ -3089,17 +3103,17 @@ FixedFontFamily: FlexFormattingContextIntegrationEnabled: type: bool - status: unstable + status: stable category: dom humanReadableName: "Next-generation flex layout integration (FFC)" humanReadableDescription: "Enable next-generation flex layout integration (FFC)" defaultValue: WebKitLegacy: - default: false + default: true WebKit: - default: false + default: true WebCore: - default: false + default: true ForceAlwaysUserScalable: type: bool @@ -5775,7 +5789,7 @@ PerElementSpeakerSelectionEnabled: condition: ENABLE(MEDIA_STREAM) defaultValue: WebKit: - "PLATFORM(MAC)": true + "PLATFORM(COCOA)": true default: false WebCore: default: false diff --git a/Source/WTF/wtf/AlignedStorage.h b/Source/WTF/wtf/AlignedStorage.h index d097809bf7650..538d148cb110c 100644 --- a/Source/WTF/wtf/AlignedStorage.h +++ b/Source/WTF/wtf/AlignedStorage.h @@ -30,7 +30,7 @@ namespace WTF { -template +template> class AlignedStorage { public: AlignedStorage() = default; @@ -48,7 +48,7 @@ class AlignedStorage { const T* operator->() const { return get(); } private: - struct alignas(T) Storage { + struct alignas(alignment) Storage { std::byte data[sizeof(T)]; } m_storage; }; diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h index 5c3dea61c922d..828dfe5ca5036 100644 --- a/Source/WTF/wtf/PlatformHave.h +++ b/Source/WTF/wtf/PlatformHave.h @@ -1891,3 +1891,12 @@ || (PLATFORM(COCOA) && !PLATFORM(MAC)) #define HAVE_X25519_ZERO_CHECKS 1 #endif + +#if !defined(HAVE_CG_PATH_CONTINUOUS_ROUNDED_RECT) \ + && ((PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 150000) \ + || ((PLATFORM(IOS) || PLATFORM(MACCATALYST)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 180000) \ + || (PLATFORM(VISION) && __VISION_OS_VERSION_MIN_REQUIRED >= 20000)) \ + || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 110000) \ + || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 180000) +#define HAVE_CG_CONTINUOUS_ROUNDED_RECT 1 +#endif diff --git a/Source/WTF/wtf/RetainPtr.h b/Source/WTF/wtf/RetainPtr.h index d16717117a304..4ed5ee49a5cfb 100644 --- a/Source/WTF/wtf/RetainPtr.h +++ b/Source/WTF/wtf/RetainPtr.h @@ -45,10 +45,18 @@ #define CF_RELEASES_ARGUMENT #endif +#ifndef CF_RETURNS_RETAINED +#define CF_RETURNS_RETAINED +#endif + #ifndef NS_RELEASES_ARGUMENT #define NS_RELEASES_ARGUMENT #endif +#ifndef NS_RETURNS_RETAINED +#define NS_RETURNS_RETAINED +#endif + #ifndef __OBJC__ typedef struct objc_object *id; #endif @@ -62,16 +70,16 @@ typedef struct objc_object *id; namespace WTF { -// Unlike most most of our smart pointers, RetainPtr can take either the pointer type or the pointed-to type, -// so both RetainPtr and RetainPtr will work. +// RetainPtr can point to NS or CF objects, e.g. RetainPtr or RetainPtr. template class RetainPtr; -template constexpr RetainPtr adoptCF(T CF_RELEASES_ARGUMENT) WARN_UNUSED_RETURN; +template constexpr bool IsNSType = std::is_convertible_v; +template using RetainPtrType = std::conditional_t, std::remove_pointer_t, T>; -#ifdef __OBJC__ -template RetainPtr::HelperPtrType> adoptNS(T NS_RELEASES_ARGUMENT) WARN_UNUSED_RETURN; -#endif +template constexpr RetainPtr> adoptCF(T CF_RELEASES_ARGUMENT) WARN_UNUSED_RETURN; + +template constexpr RetainPtr> adoptNS(T NS_RELEASES_ARGUMENT) WARN_UNUSED_RETURN; template class RetainPtr { public: @@ -79,9 +87,10 @@ template class RetainPtr { using PtrType = ValueType*; #ifdef __OBJC__ - using HelperPtrType = typename std::conditional_t && !std::is_same_v, std::remove_pointer_t, T>; + using StorageType = PtrType; #else - using HelperPtrType = PtrType; + // Type pun id to CFTypeRef in C++ files. This is valid because they're ABI equivalent. + using StorageType = std::conditional_t, CFTypeRef, PtrType>; #endif RetainPtr() = default; @@ -90,35 +99,26 @@ template class RetainPtr { RetainPtr(const RetainPtr&); template RetainPtr(const RetainPtr&); - constexpr RetainPtr(RetainPtr&& o) : m_ptr(toStorageType(o.leakRef())) { } - template constexpr RetainPtr(RetainPtr&& o) : m_ptr(toStorageType(checkType(o.leakRef()))) { } + constexpr RetainPtr(RetainPtr&& o) : m_ptr(o.leakRef()) { } + template>::PtrType, PtrType>>> + constexpr RetainPtr(RetainPtr&& o) : m_ptr(o.leakRef()) { } // Hash table deleted values, which are only constructed and never copied or destroyed. - constexpr RetainPtr(HashTableDeletedValueType) : m_ptr(toStorageType(hashTableDeletedValue())) { } - constexpr bool isHashTableDeletedValue() const { return m_ptr == toStorageType(hashTableDeletedValue()); } + constexpr RetainPtr(HashTableDeletedValueType) : m_ptr(hashTableDeletedValue()) { } + constexpr bool isHashTableDeletedValue() const { return m_ptr == hashTableDeletedValue(); } ~RetainPtr(); void clear(); -#ifdef __OBJC__ - template - std::enable_if_t, PtrType> leakRef() NS_RETURNS_RETAINED WARN_UNUSED_RETURN { - static_assert(std::is_same_v, "explicit specialization not allowed"); - return fromStorageType(std::exchange(m_ptr, nullptr)); - } -#else - template - std::enable_if_t, PtrType> leakRef() CF_RETURNS_RETAINED WARN_UNUSED_RETURN { - static_assert(std::is_same_v, "explicit specialization not allowed"); - return fromStorageType(std::exchange(m_ptr, nullptr)); + template + std::enable_if_t && std::is_same_v, StorageType> leakRef() NS_RETURNS_RETAINED WARN_UNUSED_RETURN { + return std::exchange(m_ptr, nullptr); } -#endif - template - std::enable_if_t, PtrType> leakRef() CF_RETURNS_RETAINED WARN_UNUSED_RETURN { - static_assert(std::is_same_v, "explicit specialization not allowed"); - return fromStorageType(std::exchange(m_ptr, nullptr)); + template + std::enable_if_t && std::is_same_v, StorageType> leakRef() CF_RETURNS_RETAINED WARN_UNUSED_RETURN { + return std::exchange(m_ptr, nullptr); } #if HAVE(CFAUTORELEASE) @@ -129,18 +129,13 @@ template class RetainPtr { id bridgingAutorelease(); #endif - constexpr PtrType get() const { return fromStorageType(m_ptr); } - constexpr PtrType operator->() const { return fromStorageType(m_ptr); } - constexpr explicit operator PtrType() const { return fromStorageType(m_ptr); } + constexpr PtrType get() const { return m_ptr; } + constexpr PtrType operator->() const { return m_ptr; } + constexpr explicit operator PtrType() const { return m_ptr; } constexpr explicit operator bool() const { return m_ptr; } constexpr bool operator!() const { return !m_ptr; } - // This conversion operator allows implicit conversion to bool but not to other integer types. - // FIXME: Eventually we should remove this; it's an outdated technique and less needed since we have explicit operator bool. - typedef CFTypeRef RetainPtr::*UnspecifiedBoolType; - operator UnspecifiedBoolType() const { return m_ptr ? &RetainPtr::m_ptr : nullptr; } - RetainPtr& operator=(const RetainPtr&); template RetainPtr& operator=(const RetainPtr&); RetainPtr& operator=(PtrType); @@ -151,64 +146,69 @@ template class RetainPtr { void swap(RetainPtr&); - template friend constexpr RetainPtr adoptCF(U CF_RELEASES_ARGUMENT) WARN_UNUSED_RETURN; + template friend constexpr RetainPtr> adoptCF(U CF_RELEASES_ARGUMENT) WARN_UNUSED_RETURN; -#ifdef __OBJC__ - template friend RetainPtr::HelperPtrType> adoptNS(U NS_RELEASES_ARGUMENT) WARN_UNUSED_RETURN; -#endif + template friend constexpr RetainPtr> adoptNS(U NS_RELEASES_ARGUMENT) WARN_UNUSED_RETURN; private: enum AdoptTag { Adopt }; - constexpr RetainPtr(PtrType ptr, AdoptTag) : m_ptr(toStorageType(ptr)) { } + constexpr RetainPtr(PtrType ptr, AdoptTag) : m_ptr(ptr) { } - static constexpr PtrType checkType(PtrType ptr) { return ptr; } +#if __has_feature(objc_arc) + // ARC will try to retain/release this value, but it looks like a tagged immediate, so retain/release ends up being a no-op -- see _objc_isTaggedPointer() in . + template + static constexpr std::enable_if_t && std::is_same_v, PtrType> hashTableDeletedValue() { return (__bridge PtrType)(void*)-1; } - static constexpr PtrType hashTableDeletedValue() { return fromStorageType(reinterpret_cast(-1)); } + template + static constexpr std::enable_if_t && std::is_same_v, PtrType> hashTableDeletedValue() { return reinterpret_cast(-1); } +#else + static constexpr PtrType hashTableDeletedValue() { return reinterpret_cast(-1); } +#endif + + static inline void retainFoundationPtr(CFTypeRef ptr) { CFRetain(ptr); } + static inline void releaseFoundationPtr(CFTypeRef ptr) { CFRelease(ptr); } +#if HAVE(CFAUTORELEASE) + static inline void autoreleaseFoundationPtr(CFTypeRef ptr) { CFAutorelease(ptr); } +#endif #ifdef __OBJC__ - template static constexpr std::enable_if_t, PtrType> fromStorageTypeHelper(CFTypeRef ptr) - { - return (__bridge PtrType)const_cast(ptr); - } - template static constexpr std::enable_if_t, PtrType> fromStorageTypeHelper(CFTypeRef ptr) - { - return (PtrType)const_cast(ptr); - } - static constexpr PtrType fromStorageType(CFTypeRef ptr) { return fromStorageTypeHelper(ptr); } - static constexpr CFTypeRef toStorageType(id ptr) { return (__bridge CFTypeRef)ptr; } - static constexpr CFTypeRef toStorageType(CFTypeRef ptr) { return ptr; } +#if __has_feature(objc_arc) + static inline void retainFoundationPtr(id) { } + static inline void releaseFoundationPtr(id) { } + static inline void autoreleaseFoundationPtr(id) { } #else - static constexpr PtrType fromStorageType(CFTypeRef ptr) - { - return (PtrType)const_cast(ptr); - } - static constexpr CFTypeRef toStorageType(PtrType ptr) { return (CFTypeRef)ptr; } + static inline void retainFoundationPtr(id ptr) { [ptr retain]; } + static inline void releaseFoundationPtr(id ptr) { [ptr release]; } + static inline void autoreleaseFoundationPtr(id ptr) { [ptr autorelease]; } +#endif #endif - CFTypeRef m_ptr { nullptr }; + StorageType m_ptr { nullptr }; }; -template RetainPtr(T) -> RetainPtr>; +template RetainPtr(T) -> RetainPtr>; // Helper function for creating a RetainPtr using template argument deduction. -template RetainPtr::HelperPtrType> retainPtr(T) WARN_UNUSED_RETURN; +template RetainPtr> retainPtr(T) WARN_UNUSED_RETURN; template inline RetainPtr::~RetainPtr() { if (auto ptr = std::exchange(m_ptr, nullptr)) - CFRelease(ptr); + releaseFoundationPtr(ptr); } template inline RetainPtr::RetainPtr(PtrType ptr) - : m_ptr(toStorageType(ptr)) + : m_ptr(ptr) { if (m_ptr) - CFRetain(m_ptr); + retainFoundationPtr(m_ptr); } template inline RetainPtr::RetainPtr(const RetainPtr& o) - : RetainPtr(o.get()) + : m_ptr(o.m_ptr) { + if (m_ptr) + retainFoundationPtr(m_ptr); } template template inline RetainPtr::RetainPtr(const RetainPtr& o) @@ -219,32 +219,27 @@ template template inline RetainPtr::RetainPtr(const R template inline void RetainPtr::clear() { if (auto ptr = std::exchange(m_ptr, nullptr)) - CFRelease(ptr); + releaseFoundationPtr(ptr); } #if HAVE(CFAUTORELEASE) template inline auto RetainPtr::autorelease() -> PtrType { -#ifdef __OBJC__ - if constexpr (std::is_convertible_v) - return CFBridgingRelease(std::exchange(m_ptr, nullptr)); -#endif - if (m_ptr) - CFAutorelease(m_ptr); - return leakRef(); + auto ptr = std::exchange(m_ptr, nullptr); + if (ptr) + autoreleaseFoundationPtr(ptr); + return ptr; } -#endif // PLATFORM(COCOA) +#endif // HAVE(CFAUTORELEASE) #ifdef __OBJC__ - // FIXME: It would be better if we could base the return type on the type that is toll-free bridged with T rather than using id. template inline id RetainPtr::bridgingAutorelease() { - static_assert(!std::is_convertible_v, "Don't use bridgingAutorelease for Objective-C pointer types."); + static_assert(!IsNSType, "Don't use bridgingAutorelease for Objective-C pointer types."); return CFBridgingRelease(leakRef()); } - -#endif +#endif // __OBJC__ template inline RetainPtr& RetainPtr::operator=(const RetainPtr& o) { @@ -313,32 +308,19 @@ template constexpr bool operator==(T* a, const RetainPtr return a == b.get(); } -template constexpr RetainPtr adoptCF(T CF_RELEASES_ARGUMENT ptr) +template constexpr RetainPtr> adoptCF(T CF_RELEASES_ARGUMENT ptr) { -#ifdef __OBJC__ - static_assert(!std::is_convertible_v, "Don't use adoptCF with Objective-C pointer types, use adoptNS."); -#endif - return RetainPtr(ptr, RetainPtr::Adopt); + static_assert(!IsNSType, "Don't use adoptCF with Objective-C pointer types, use adoptNS."); + return { ptr, RetainPtr>::Adopt }; } -#ifdef __OBJC__ -template inline RetainPtr::HelperPtrType> adoptNS(T NS_RELEASES_ARGUMENT ptr) +template constexpr RetainPtr> adoptNS(T NS_RELEASES_ARGUMENT ptr) { - static_assert(std::is_convertible_v, "Don't use adoptNS with Core Foundation pointer types, use adoptCF."); -#if __has_feature(objc_arc) - return ptr; -#elif defined(OBJC_NO_GC) - using ReturnType = RetainPtr::HelperPtrType>; - return ReturnType { ptr, ReturnType::Adopt }; -#else - RetainPtr::HelperPtrType> result = ptr; - [ptr release]; - return result; -#endif + static_assert(IsNSType, "Don't use adoptNS with Core Foundation pointer types, use adoptCF."); + return { ptr, RetainPtr>::Adopt }; } -#endif -template inline RetainPtr::HelperPtrType> retainPtr(T ptr) +template inline RetainPtr> retainPtr(T ptr) { return ptr; } diff --git a/Source/WTF/wtf/RobinHoodHashMap.h b/Source/WTF/wtf/RobinHoodHashMap.h index a681aa70591de..154ced929b5bb 100644 --- a/Source/WTF/wtf/RobinHoodHashMap.h +++ b/Source/WTF/wtf/RobinHoodHashMap.h @@ -31,15 +31,15 @@ namespace WTF { // 95% load-factor. template, typename KeyTraitsArg = HashTraits, typename MappedTraitsArg = HashTraits> -using MemoryCompactLookupOnlyRobinHoodHashMap = UncheckedKeyHashMap; +using MemoryCompactLookupOnlyRobinHoodHashMap = HashMap; // 90% load-factor. template, typename KeyTraitsArg = HashTraits, typename MappedTraitsArg = HashTraits> -using MemoryCompactRobinHoodHashMap = UncheckedKeyHashMap; +using MemoryCompactRobinHoodHashMap = HashMap; // 75% load-factor. template, typename KeyTraitsArg = HashTraits, typename MappedTraitsArg = HashTraits> -using FastRobinHoodHashMap = UncheckedKeyHashMap; +using FastRobinHoodHashMap = HashMap; } // namespace WTF diff --git a/Source/WTF/wtf/RobinHoodHashTable.h b/Source/WTF/wtf/RobinHoodHashTable.h index 6303df8a3799b..6e6e6f4902acd 100644 --- a/Source/WTF/wtf/RobinHoodHashTable.h +++ b/Source/WTF/wtf/RobinHoodHashTable.h @@ -59,7 +59,7 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN namespace WTF { -template +template class RobinHoodHashTable; // 95% load factor. This a bit regress "insertion" performance, while it keeps lookup performance sane. @@ -103,10 +103,10 @@ struct FastRobinHoodHashTableSizePolicy { // [1]: https://codecapsule.com/2013/11/11/robin-hood-hashing/ // [2]: https://codecapsule.com/2013/11/17/robin-hood-hashing-backward-shift-deletion/ // [3]: https://accidentallyquadratic.tumblr.com/post/153545455987/rust-hash-iteration-reinsertion -template +template class RobinHoodHashTable { public: - using HashTableType = RobinHoodHashTable; + using HashTableType = RobinHoodHashTable; using iterator = HashTableIterator; using const_iterator = HashTableConstIterator; using ValueTraits = Traits; @@ -309,41 +309,32 @@ class RobinHoodHashTable { #endif }; -#if !ASSERT_ENABLED - -template +template template -inline void RobinHoodHashTable::checkKey(const T&) +void RobinHoodHashTable::checkKey(const T& key) { -} - -#else // ASSERT_ENABLED + if constexpr (!ASSERT_ENABLED && shouldValidateKey == ShouldValidateKey::No) + return; -template -template -void RobinHoodHashTable::checkKey(const T& key) -{ if (!HashFunctions::safeToCompareToEmptyOrDeleted) return; - ASSERT(!HashTranslator::equal(KeyTraits::emptyValue(), key)); + RELEASE_ASSERT(!HashTranslator::equal(KeyTraits::emptyValue(), key)); AlignedStorage deletedValueBuffer; auto& deletedValue = *deletedValueBuffer; Traits::constructDeletedValue(deletedValue); - ASSERT(!HashTranslator::equal(Extractor::extract(deletedValue), key)); + RELEASE_ASSERT(!HashTranslator::equal(Extractor::extract(deletedValue), key)); } -#endif // ASSERT_ENABLED - -template +template template -inline auto RobinHoodHashTable::lookup(const T& key) -> ValueType* +inline auto RobinHoodHashTable::lookup(const T& key) -> ValueType* { return inlineLookup(key); } -template +template template -ALWAYS_INLINE auto RobinHoodHashTable::inlineLookup(const T& key) -> ValueType* +ALWAYS_INLINE auto RobinHoodHashTable::inlineLookup(const T& key) -> ValueType* { checkKey(key); @@ -378,15 +369,15 @@ ALWAYS_INLINE auto RobinHoodHashTable -inline void RobinHoodHashTable::initializeBucket(ValueType& bucket) +template +inline void RobinHoodHashTable::initializeBucket(ValueType& bucket) { HashTableBucketInitializer::template initialize(bucket); } -template +template template -ALWAYS_INLINE auto RobinHoodHashTable::add(T&& key, NOESCAPE const std::invocable<> auto& functor) -> AddResult +ALWAYS_INLINE auto RobinHoodHashTable::add(T&& key, NOESCAPE const std::invocable<> auto& functor) -> AddResult { checkKey(key); @@ -447,8 +438,8 @@ ALWAYS_INLINE auto RobinHoodHashTable -ALWAYS_INLINE void RobinHoodHashTable::maintainProbeDistanceForAdd(ValueType&& value, unsigned index, unsigned distance, unsigned size, unsigned sizeMask, unsigned tableHash) +template +ALWAYS_INLINE void RobinHoodHashTable::maintainProbeDistanceForAdd(ValueType&& value, unsigned index, unsigned distance, unsigned size, unsigned sizeMask, unsigned tableHash) { using std::swap; // For C++ ADL. index = (index + 1) & sizeMask; @@ -474,9 +465,9 @@ ALWAYS_INLINE void RobinHoodHashTable +template template -inline auto RobinHoodHashTable::addPassingHashCode(T&& key, NOESCAPE const std::invocable<> auto& functor) -> AddResult +inline auto RobinHoodHashTable::addPassingHashCode(T&& key, NOESCAPE const std::invocable<> auto& functor) -> AddResult { checkKey(key); @@ -538,8 +529,8 @@ inline auto RobinHoodHashTable -inline void RobinHoodHashTable::reinsert(ValueType&& value) +template +inline void RobinHoodHashTable::reinsert(ValueType&& value) { using std::swap; // For C++ ADL. unsigned size = tableSize(); @@ -568,9 +559,9 @@ inline void RobinHoodHashTable +template template -auto RobinHoodHashTable::find(const T& key) -> iterator +auto RobinHoodHashTable::find(const T& key) -> iterator { if (!m_table) return end(); @@ -582,9 +573,9 @@ auto RobinHoodHashTable +template template -auto RobinHoodHashTable::find(const T& key) const -> const_iterator +auto RobinHoodHashTable::find(const T& key) const -> const_iterator { if (!m_table) return end(); @@ -596,9 +587,9 @@ auto RobinHoodHashTable +template template -bool RobinHoodHashTable::contains(const T& key) const +bool RobinHoodHashTable::contains(const T& key) const { if (!m_table) return false; @@ -606,23 +597,23 @@ bool RobinHoodHashTable(this)->lookup(key); } -template -void RobinHoodHashTable::removeAndInvalidateWithoutEntryConsistencyCheck(ValueType* pos) +template +void RobinHoodHashTable::removeAndInvalidateWithoutEntryConsistencyCheck(ValueType* pos) { invalidateIterators(this); remove(pos); } -template -void RobinHoodHashTable::removeAndInvalidate(ValueType* pos) +template +void RobinHoodHashTable::removeAndInvalidate(ValueType* pos) { invalidateIterators(this); internalCheckTableConsistency(); remove(pos); } -template -void RobinHoodHashTable::remove(ValueType* pos) +template +void RobinHoodHashTable::remove(ValueType* pos) { // This is removal via "backward-shift-deletion". This basically shift existing entries to removed empty entry place so that we make // the table as if no removal happened so far. This decreases distance-to-initial-bucket (DIB) of the subsequent entries by 1. This maintains @@ -664,8 +655,8 @@ void RobinHoodHashTable -inline void RobinHoodHashTable::remove(iterator it) +template +inline void RobinHoodHashTable::remove(iterator it) { if (it == end()) return; @@ -673,8 +664,8 @@ inline void RobinHoodHashTable(it.m_iterator.m_position)); } -template -inline void RobinHoodHashTable::removeWithoutEntryConsistencyCheck(iterator it) +template +inline void RobinHoodHashTable::removeWithoutEntryConsistencyCheck(iterator it) { if (it == end()) return; @@ -682,8 +673,8 @@ inline void RobinHoodHashTable(it.m_iterator.m_position)); } -template -inline void RobinHoodHashTable::removeWithoutEntryConsistencyCheck(const_iterator it) +template +inline void RobinHoodHashTable::removeWithoutEntryConsistencyCheck(const_iterator it) { if (it == end()) return; @@ -691,14 +682,14 @@ inline void RobinHoodHashTable(it.m_position)); } -template -inline void RobinHoodHashTable::remove(const KeyType& key) +template +inline void RobinHoodHashTable::remove(const KeyType& key) { remove(find(key)); } -template -auto RobinHoodHashTable::allocateTable(unsigned size) -> ValueType* +template +auto RobinHoodHashTable::allocateTable(unsigned size) -> ValueType* { // would use a template member function with explicit specializations here, but // gcc doesn't appear to support that @@ -711,16 +702,16 @@ auto RobinHoodHashTable -void RobinHoodHashTable::deallocateTable(ValueType* table, unsigned size) +template +void RobinHoodHashTable::deallocateTable(ValueType* table, unsigned size) { for (unsigned i = 0; i < size; ++i) table[i].~ValueType(); HashTableMalloc::free(table); } -template -void RobinHoodHashTable::expand() +template +void RobinHoodHashTable::expand() { unsigned newSize; unsigned oldSize = tableSize(); @@ -732,8 +723,8 @@ void RobinHoodHashTable -constexpr unsigned RobinHoodHashTable::computeBestTableSize(unsigned keyCount) +template +constexpr unsigned RobinHoodHashTable::computeBestTableSize(unsigned keyCount) { unsigned bestTableSize = WTF::roundUpToPowerOfTwo(keyCount); @@ -761,15 +752,15 @@ constexpr unsigned RobinHoodHashTable -void RobinHoodHashTable::shrinkToBestSize() +template +void RobinHoodHashTable::shrinkToBestSize() { unsigned minimumTableSize = KeyTraits::minimumTableSize; rehash(std::max(minimumTableSize, computeBestTableSize(keyCount()))); } -template -void RobinHoodHashTable::rehash(unsigned newTableSize) +template +void RobinHoodHashTable::rehash(unsigned newTableSize) { internalCheckTableConsistencyExceptSize(); @@ -794,8 +785,8 @@ void RobinHoodHashTable -void RobinHoodHashTable::clear() +template +void RobinHoodHashTable::clear() { invalidateIterators(this); if (!m_table) @@ -810,8 +801,8 @@ void RobinHoodHashTable -RobinHoodHashTable::RobinHoodHashTable(const RobinHoodHashTable& other) +template +RobinHoodHashTable::RobinHoodHashTable(const RobinHoodHashTable& other) { if (!other.m_tableSize || !other.m_keyCount) return; @@ -832,8 +823,8 @@ RobinHoodHashTable -void RobinHoodHashTable::swap(RobinHoodHashTable& other) +template +void RobinHoodHashTable::swap(RobinHoodHashTable& other) { using std::swap; // For C++ ADL. invalidateIterators(this); @@ -849,16 +840,16 @@ void RobinHoodHashTable -auto RobinHoodHashTable::operator=(const RobinHoodHashTable& other) -> RobinHoodHashTable& +template +auto RobinHoodHashTable::operator=(const RobinHoodHashTable& other) -> RobinHoodHashTable& { RobinHoodHashTable tmp(other); swap(tmp); return *this; } -template -inline RobinHoodHashTable::RobinHoodHashTable(RobinHoodHashTable&& other) +template +inline RobinHoodHashTable::RobinHoodHashTable(RobinHoodHashTable&& other) { invalidateIterators(&other); @@ -872,8 +863,8 @@ inline RobinHoodHashTable -inline auto RobinHoodHashTable::operator=(RobinHoodHashTable&& other) -> RobinHoodHashTable& +template +inline auto RobinHoodHashTable::operator=(RobinHoodHashTable&& other) -> RobinHoodHashTable& { RobinHoodHashTable temp(WTFMove(other)); swap(temp); @@ -883,14 +874,14 @@ inline auto RobinHoodHashTable -void RobinHoodHashTable::checkTableConsistency() const +template +void RobinHoodHashTable::checkTableConsistency() const { checkTableConsistencyExceptSize(); } -template -void RobinHoodHashTable::checkTableConsistencyExceptSize() const +template +void RobinHoodHashTable::checkTableConsistencyExceptSize() const { if (!m_table) return; @@ -920,17 +911,17 @@ void RobinHoodHashTable - using TableType = RobinHoodHashTable; + using TableType = RobinHoodHashTable; }; struct MemoryCompactRobinHoodHashTableTraits { template - using TableType = RobinHoodHashTable; + using TableType = RobinHoodHashTable; }; struct FastRobinHoodHashTableTraits { template - using TableType = RobinHoodHashTable; + using TableType = RobinHoodHashTable; }; } // namespace WTF diff --git a/Source/WTF/wtf/Vector.h b/Source/WTF/wtf/Vector.h index 8f6aa028b6bd0..802e608dab9c3 100644 --- a/Source/WTF/wtf/Vector.h +++ b/Source/WTF/wtf/Vector.h @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -669,21 +670,17 @@ class VectorBuffer : private VectorBufferBase { VectorTypeOperations::move(right + swapBound, right + rightSize, left + swapBound); } - T* inlineBuffer() LIFETIME_BOUND { return reinterpret_cast_ptr(m_inlineBuffer); } - const T* inlineBuffer() const LIFETIME_BOUND { return reinterpret_cast_ptr(m_inlineBuffer); } + T* inlineBuffer() LIFETIME_BOUND { SUPPRESS_MEMORY_UNSAFE_CAST return reinterpret_cast_ptr(m_inlineBuffer); } + const T* inlineBuffer() const LIFETIME_BOUND { SUPPRESS_MEMORY_UNSAFE_CAST return reinterpret_cast_ptr(m_inlineBuffer); } #if ASAN_ENABLED // ASan needs the buffer to begin and end on 8-byte boundaries for annotations to work. // FIXME: Add a redzone before the buffer to catch off by one accesses. We don't need a guard after, because the buffer is the last member variable. static constexpr size_t asanInlineBufferAlignment = std::alignment_of::value >= 8 ? std::alignment_of::value : 8; static constexpr size_t asanAdjustedInlineCapacity = ((sizeof(T) * inlineCapacity + 7) & ~7) / sizeof(T); - ALLOW_DEPRECATED_DECLARATIONS_BEGIN - typename std::aligned_storage::type m_inlineBuffer[asanAdjustedInlineCapacity]; - ALLOW_DEPRECATED_DECLARATIONS_END + AlignedStorage m_inlineBuffer[asanAdjustedInlineCapacity]; #else - ALLOW_DEPRECATED_DECLARATIONS_BEGIN - typename std::aligned_storage::value>::type m_inlineBuffer[inlineCapacity]; - ALLOW_DEPRECATED_DECLARATIONS_END + AlignedStorage m_inlineBuffer[inlineCapacity]; #endif }; diff --git a/Source/WTF/wtf/cocoa/TypeCastsCocoa.h b/Source/WTF/wtf/cocoa/TypeCastsCocoa.h index 8a776d349b354..5815f9d69ace5 100644 --- a/Source/WTF/wtf/cocoa/TypeCastsCocoa.h +++ b/Source/WTF/wtf/cocoa/TypeCastsCocoa.h @@ -35,7 +35,7 @@ namespace WTF { #if __has_feature(objc_arc) #define WTF_CF_TO_NS_BRIDGE_TRANSFER(type, value) ((__bridge_transfer type)value) -#define WTF_NS_TO_CF_BRIDGE_TRANSFER(type, value) ((type)reinterpret_cast(value)) +#define WTF_NS_TO_CF_BRIDGE_TRANSFER(type, value) ((__bridge_retained type)value) #else #define WTF_CF_TO_NS_BRIDGE_TRANSFER(type, value) ((__bridge type)value) #define WTF_NS_TO_CF_BRIDGE_TRANSFER(type, value) ((__bridge type)value) diff --git a/Source/WTF/wtf/text/ASCIIFastPath.h b/Source/WTF/wtf/text/ASCIIFastPath.h index d84ec3b008cff..fc0b423aa7584 100644 --- a/Source/WTF/wtf/text/ASCIIFastPath.h +++ b/Source/WTF/wtf/text/ASCIIFastPath.h @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -32,6 +33,26 @@ namespace WTF { +template +inline constexpr BitSet<256> makeLatin1CharacterBitSet(const char (&characters)[charactersCount]) +{ + static_assert(charactersCount > 0, "Since string literal is null terminated, characterCount is always larger than 0"); + BitSet<256> bitmap; + for (unsigned i = 0; i < charactersCount - 1; ++i) + bitmap.set(characters[i]); + return bitmap; +} + +inline constexpr BitSet<256> makeLatin1CharacterBitSet(NOESCAPE const Invocable auto& matches) +{ + BitSet<256> bitmap; + for (unsigned i = 0; i < bitmap.size(); ++i) { + if (matches(static_cast(i))) + bitmap.set(i); + } + return bitmap; +} + template inline bool isAlignedTo(const void* pointer) { @@ -144,3 +165,4 @@ inline bool charactersAreAllLatin1(std::span span) } // namespace WTF using WTF::charactersAreAllASCII; +using WTF::makeLatin1CharacterBitSet; diff --git a/Source/WebCore/Headers.cmake b/Source/WebCore/Headers.cmake index 902dca60b9717..b587108cceb32 100644 --- a/Source/WebCore/Headers.cmake +++ b/Source/WebCore/Headers.cmake @@ -940,7 +940,6 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS css/MediaList.h css/MediaQueryParserContext.h css/MutableStyleProperties.h - css/NameScope.h css/Quad.h css/Rect.h css/RectBase.h @@ -2615,6 +2614,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS rendering/style/GridTrackSize.h rendering/style/LineClampValue.h rendering/style/ListStyleType.h + rendering/style/NameScope.h rendering/style/NinePieceImage.h rendering/style/OffsetRotation.h rendering/style/OutlineValue.h diff --git a/Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp b/Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp index 7da35a5a9194e..63592a497577f 100644 --- a/Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp +++ b/Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp @@ -134,7 +134,7 @@ void FileSystemFileHandle::createWritable(const CreateWritableOptions& options, if (isClosed()) return promise.reject(Exception { ExceptionCode::InvalidStateError, "Handle is closed"_s }); - connection().createWritable(identifier(), options.keepExistingData, [this, protectedThis = Ref { *this }, promise = WTFMove(promise)](auto result) mutable { + connection().createWritable(scriptExecutionContext()->identifier(), identifier(), options.keepExistingData, [this, protectedThis = Ref { *this }, promise = WTFMove(promise)](auto result) mutable { if (result.hasException()) return promise.reject(result.releaseException()); @@ -163,6 +163,8 @@ void FileSystemFileHandle::createWritable(const CreateWritableOptions& options, Locker locker(globalObject->vm().apiLock()); stream = FileSystemWritableFileStream::create(*globalObject, sink.releaseReturnValue()); } + if (!stream.hasException()) + connection().registerFileSystemWritable(streamIdentifier, stream.returnValue()); promise.settle(WTFMove(stream)); }); @@ -170,6 +172,7 @@ void FileSystemFileHandle::createWritable(const CreateWritableOptions& options, void FileSystemFileHandle::closeWritable(FileSystemWritableFileStreamIdentifier streamIdentifier, FileSystemWriteCloseReason reason) { + connection().unregisterFileSystemWritable(streamIdentifier); if (!isClosed()) connection().closeWritable(identifier(), streamIdentifier, reason, [](auto) { }); } diff --git a/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.cpp b/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.cpp new file mode 100644 index 0000000000000..a788a0fd77589 --- /dev/null +++ b/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "FileSystemStorageConnection.h" + +#include "FileSystemWritableFileStream.h" + +namespace WebCore { + +bool FileSystemStorageConnection::errorFileSystemWritable(FileSystemWritableFileStreamIdentifier identifier) +{ + RefPtr writable = m_writables.take(identifier).get(); + if (writable) + writable->errorIfPossible(Exception { ExceptionCode::AbortError }); + return writable; +} + +void FileSystemStorageConnection::registerFileSystemWritable(FileSystemWritableFileStreamIdentifier identifier, FileSystemWritableFileStream& writer) +{ + ASSERT(!m_writables.contains(identifier)); + m_writables.add(identifier, WeakPtr { writer }); +} + +void FileSystemStorageConnection::unregisterFileSystemWritable(FileSystemWritableFileStreamIdentifier identifier) +{ + m_writables.remove(identifier); +} + +} // namespace WebCore diff --git a/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h b/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h index c7e546420b75c..580b98f97c19f 100644 --- a/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h +++ b/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h @@ -34,6 +34,7 @@ #include "ProcessQualified.h" #include "ScriptExecutionContextIdentifier.h" #include +#include #include namespace WebCore { @@ -43,6 +44,7 @@ class FileSystemFileHandle; class FileHandle; class FileSystemHandleCloseScope; class FileSystemSyncAccessHandle; +class FileSystemWritableFileStream; template class ExceptionOr; class FileSystemStorageConnection : public ThreadSafeRefCounted { @@ -81,11 +83,18 @@ class FileSystemStorageConnection : public ThreadSafeRefCounted position, std::optional size, std::span dataBytes, bool hasDataError, VoidCallback&&) = 0; virtual void getHandleNames(FileSystemHandleIdentifier, GetHandleNamesCallback&&) = 0; virtual void getHandle(FileSystemHandleIdentifier, const String& name, GetHandleCallback&&) = 0; + + WEBCORE_EXPORT bool errorFileSystemWritable(FileSystemWritableFileStreamIdentifier); + void registerFileSystemWritable(FileSystemWritableFileStreamIdentifier, FileSystemWritableFileStream&); + void unregisterFileSystemWritable(FileSystemWritableFileStreamIdentifier); + +private: + HashMap> m_writables; }; } // namespace WebCore diff --git a/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp b/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp index 0e29416913483..837dffc70a9a9 100644 --- a/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp +++ b/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp @@ -317,7 +317,7 @@ void WorkerFileSystemStorageConnection::invalidateAccessHandle(WebCore::FileSyst handle->invalidate(); } -void WorkerFileSystemStorageConnection::createWritable(FileSystemHandleIdentifier identifier, bool keepExistingData, StreamCallback&& callback) +void WorkerFileSystemStorageConnection::createWritable(ScriptExecutionContextIdentifier contextIdentifier, FileSystemHandleIdentifier identifier, bool keepExistingData, StreamCallback&& callback) { if (!m_scope) return callback(Exception { ExceptionCode::InvalidStateError }); @@ -325,7 +325,7 @@ void WorkerFileSystemStorageConnection::createWritable(FileSystemHandleIdentifie auto callbackIdentifier = CallbackIdentifier::generate(); m_streamCallbacks.add(callbackIdentifier, WTFMove(callback)); - callOnMainThread([callbackIdentifier, workerThread = Ref { m_scope->thread() }, mainThreadConnection = m_mainThreadConnection, identifier, keepExistingData]() mutable { + callOnMainThread([callbackIdentifier, workerThread = Ref { m_scope->thread() }, mainThreadConnection = m_mainThreadConnection, contextIdentifier, identifier, keepExistingData]() mutable { auto mainThreadCallback = [callbackIdentifier, workerThread = WTFMove(workerThread)](auto&& result) mutable { workerThread->runLoop().postTaskForMode([callbackIdentifier, result = crossThreadCopy(WTFMove(result))] (auto& scope) mutable { if (RefPtr connection = downcast(scope).fileSystemStorageConnection()) { @@ -335,7 +335,7 @@ void WorkerFileSystemStorageConnection::createWritable(FileSystemHandleIdentifie }, WorkerRunLoop::defaultMode()); }; - mainThreadConnection->createWritable(identifier, keepExistingData, WTFMove(mainThreadCallback)); + mainThreadConnection->createWritable(contextIdentifier, identifier, keepExistingData, WTFMove(mainThreadCallback)); }); } diff --git a/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h b/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h index a40184f045898..3e2ce3e09f7d1 100644 --- a/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h +++ b/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h @@ -79,7 +79,7 @@ class WorkerFileSystemStorageConnection final : public FileSystemStorageConnecti void unregisterSyncAccessHandle(FileSystemSyncAccessHandleIdentifier) final; void invalidateAccessHandle(FileSystemSyncAccessHandleIdentifier) final; void requestNewCapacityForSyncAccessHandle(FileSystemHandleIdentifier, FileSystemSyncAccessHandleIdentifier, uint64_t, RequestCapacityCallback&&) final; - void createWritable(FileSystemHandleIdentifier, bool keepExistingData, StreamCallback&&) final; + void createWritable(ScriptExecutionContextIdentifier, FileSystemHandleIdentifier, bool keepExistingData, StreamCallback&&) final; void closeWritable(FileSystemHandleIdentifier, FileSystemWritableFileStreamIdentifier, FileSystemWriteCloseReason, VoidCallback&&) final; void executeCommandForWritable(FileSystemHandleIdentifier, FileSystemWritableFileStreamIdentifier, FileSystemWriteCommandType, std::optional position, std::optional size, std::span dataBytes, bool hasDataError, VoidCallback&&) final; diff --git a/Source/WebCore/Modules/mediastream/RTCCertificate.h b/Source/WebCore/Modules/mediastream/RTCCertificate.h index 486fd345b6aad..6c3f38196fcdc 100644 --- a/Source/WebCore/Modules/mediastream/RTCCertificate.h +++ b/Source/WebCore/Modules/mediastream/RTCCertificate.h @@ -47,6 +47,7 @@ class RTCCertificate : public RefCounted { const String& pemCertificate() const { return m_pemCertificate; } const String& pemPrivateKey() const { return m_pemPrivateKey; } const SecurityOrigin& origin() const { return m_origin.get(); } + Ref protectedOrigin() const { return m_origin; } private: RTCCertificate(Ref&&, double expires, Vector&&, String&& pemCertificate, String&& pemPrivateKey); diff --git a/Source/WebCore/Modules/streams/WritableStream.cpp b/Source/WebCore/Modules/streams/WritableStream.cpp index c9fd3ac00c690..30bd779ebeb95 100644 --- a/Source/WebCore/Modules/streams/WritableStream.cpp +++ b/Source/WebCore/Modules/streams/WritableStream.cpp @@ -97,6 +97,11 @@ void WritableStream::closeIfPossible() m_internalWritableStream->closeIfPossible(); } +void WritableStream::errorIfPossible(Exception&& e) +{ + m_internalWritableStream->errorIfPossible(WTFMove(e)); +} + JSC::JSValue JSWritableStream::abort(JSC::JSGlobalObject& globalObject, JSC::CallFrame& callFrame) { return wrapped().internalWritableStream().abortForBindings(globalObject, callFrame.argument(0)); diff --git a/Source/WebCore/Modules/streams/WritableStream.h b/Source/WebCore/Modules/streams/WritableStream.h index 9af363e537782..aa2818ca29d64 100644 --- a/Source/WebCore/Modules/streams/WritableStream.h +++ b/Source/WebCore/Modules/streams/WritableStream.h @@ -49,6 +49,7 @@ class WritableStream : public RefCountedAndCanMakeWeakPtr { bool locked() const; void closeIfPossible(); + void errorIfPossible(Exception&&); InternalWritableStream& internalWritableStream(); enum class Type : bool { diff --git a/Source/WebCore/Modules/streams/WritableStreamInternals.js b/Source/WebCore/Modules/streams/WritableStreamInternals.js index dbbdc77fb8842..e21c6fe0c8c7d 100644 --- a/Source/WebCore/Modules/streams/WritableStreamInternals.js +++ b/Source/WebCore/Modules/streams/WritableStreamInternals.js @@ -208,6 +208,16 @@ function writableStreamAbort(stream, reason) return abortPromiseCapability.promise; } +function writableStreamErrorIfPossible(stream, reason) +{ + const state = @getByIdDirectPrivate(stream, "state"); + if (state !== "writable") + return; + + const controller = @getByIdDirectPrivate(stream, "controller"); + @writableStreamDefaultControllerError(controller, reason); +} + function writableStreamCloseIfPossible(stream) { const state = @getByIdDirectPrivate(stream, "state"); diff --git a/Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h b/Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h index c690c3933c1ec..ff2722a223814 100644 --- a/Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h +++ b/Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h @@ -422,6 +422,10 @@ CGStyleRef CGStyleCreateGaussianBlur(const CGGaussianBlurStyle*); CGStyleRef CGStyleCreateColorMatrix(const CGColorMatrixStyle*); #endif +#if HAVE(CG_PATH_CONTINUOUS_ROUNDED_RECT) +void CGPathAddContinuousRoundedRect(CGMutablePathRef, const CGAffineTransform*, CGRect, CGFloat, CGFloat); +#endif + #endif // PLATFORM(COCOA) #if PLATFORM(MAC) diff --git a/Source/WebCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations b/Source/WebCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations index f9c7db1ca5ecf..64613bae81355 100644 --- a/Source/WebCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations +++ b/Source/WebCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations @@ -111,7 +111,6 @@ platform/encryptedmedia/clearkey/CDMClearKey.cpp platform/graphics/GraphicsLayer.cpp platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h -platform/graphics/avfoundation/objc/QueuedVideoOutput.mm platform/graphics/ca/GraphicsLayerCA.cpp platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm platform/graphics/mac/controls/ControlFactoryMac.mm @@ -121,7 +120,6 @@ platform/mac/ScrollbarThemeMac.mm platform/mac/ScrollbarsControllerMac.mm platform/mac/SerializedPlatformDataCueMac.mm platform/mac/WebCoreFullScreenWindow.mm -platform/mediarecorder/cocoa/MediaRecorderPrivateWriterWebM.cpp platform/network/BlobResourceHandle.cpp rendering/BidiRun.cpp rendering/BidiRun.h diff --git a/Source/WebCore/SaferCPPExpectations/NoUncheckedPtrMemberCheckerExpectations b/Source/WebCore/SaferCPPExpectations/NoUncheckedPtrMemberCheckerExpectations index 9043f83f36a94..7bdb25154a5c2 100644 --- a/Source/WebCore/SaferCPPExpectations/NoUncheckedPtrMemberCheckerExpectations +++ b/Source/WebCore/SaferCPPExpectations/NoUncheckedPtrMemberCheckerExpectations @@ -1,7 +1,6 @@ Modules/websockets/WorkerThreadableWebSocketChannel.h html/parser/HTMLTreeBuilder.h loader/WorkerThreadableLoader.h -page/LocalFrameViewLayoutContext.cpp page/scrolling/ScrollAnchoringController.h platform/ScrollAnimator.h platform/Scrollbar.h diff --git a/Source/WebCore/SaferCPPExpectations/NoUncountedMemberCheckerExpectations b/Source/WebCore/SaferCPPExpectations/NoUncountedMemberCheckerExpectations index ca3589dcaa254..495f0e0d478d7 100644 --- a/Source/WebCore/SaferCPPExpectations/NoUncountedMemberCheckerExpectations +++ b/Source/WebCore/SaferCPPExpectations/NoUncountedMemberCheckerExpectations @@ -11,7 +11,6 @@ Modules/webdatabase/DatabaseTask.h Modules/webdatabase/SQLTransactionBackend.h accessibility/AXCoreObject.h accessibility/AXSearchManager.h -bindings/js/IDBBindingUtilities.cpp bindings/js/JSEventTargetCustom.h bindings/js/JSLazyEventListener.cpp css/CSSFontFaceSource.h @@ -72,7 +71,6 @@ platform/graphics/ComplexTextController.h platform/graphics/DrawGlyphsRecorder.h platform/graphics/GraphicsLayer.h platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm -platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm platform/graphics/ca/TileController.h @@ -92,7 +90,6 @@ rendering/TextBoxPainter.h rendering/style/StyleGeneratedImage.cpp rendering/svg/SVGTextLayoutAttributesBuilder.h rendering/updating/RenderTreeUpdater.h -style/ChildChangeInvalidation.h style/ClassChangeInvalidation.cpp style/ElementRuleCollector.cpp style/PseudoClassChangeInvalidation.h diff --git a/Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations b/Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations index 9df26875a9b58..dc539e2590023 100644 --- a/Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations +++ b/Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations @@ -1,7 +1,6 @@ Modules/cookie-store/CookieStore.cpp Modules/mediarecorder/MediaRecorder.cpp Modules/websockets/WorkerThreadableWebSocketChannel.cpp -accessibility/AXObjectCache.cpp accessibility/AccessibilityListBox.cpp accessibility/AccessibilityObject.cpp accessibility/AccessibilityRenderObject.cpp @@ -41,7 +40,6 @@ page/EventHandler.cpp page/FrameSnapshotting.cpp page/IntersectionObserver.cpp page/LocalFrameView.cpp -page/LocalFrameViewLayoutContext.cpp page/NavigateEvent.cpp page/PageColorSampler.cpp page/PageConsoleClient.cpp @@ -68,14 +66,12 @@ platform/mac/ScrollbarsControllerMac.mm platform/mac/VideoPresentationInterfaceMac.mm rendering/BackgroundPainter.cpp rendering/InlineBoxPainter.cpp -rendering/RenderBlock.cpp rendering/RenderBox.cpp rendering/RenderBoxModelObject.cpp rendering/RenderElement.cpp rendering/RenderEmbeddedObject.cpp rendering/RenderLayer.cpp rendering/RenderLayerBacking.cpp -rendering/RenderLayerCompositor.cpp rendering/RenderLayerModelObject.cpp rendering/RenderListBox.cpp rendering/RenderMenuList.cpp @@ -86,7 +82,6 @@ rendering/RenderScrollbar.cpp rendering/RenderScrollbarPart.cpp rendering/RenderSearchField.cpp rendering/RenderTreeAsText.cpp -rendering/RenderView.cpp rendering/RenderWidget.cpp rendering/svg/RenderSVGRoot.cpp rendering/svg/SVGPaintServerHandling.h diff --git a/Source/WebCore/SaferCPPExpectations/UncheckedLocalVarsCheckerExpectations b/Source/WebCore/SaferCPPExpectations/UncheckedLocalVarsCheckerExpectations index c38238d625d7b..ca52740d57180 100644 --- a/Source/WebCore/SaferCPPExpectations/UncheckedLocalVarsCheckerExpectations +++ b/Source/WebCore/SaferCPPExpectations/UncheckedLocalVarsCheckerExpectations @@ -57,12 +57,10 @@ platform/mac/VideoPresentationInterfaceMac.mm platform/mac/WebPlaybackControlsManager.mm rendering/AccessibilityRegionContext.cpp rendering/BackgroundPainter.cpp -rendering/RenderBlock.cpp rendering/RenderBox.cpp rendering/RenderBoxModelObject.cpp rendering/RenderLayer.cpp rendering/RenderLayerBacking.cpp -rendering/RenderLayerCompositor.cpp rendering/RenderLayerModelObject.cpp rendering/RenderListBox.cpp rendering/RenderMarquee.cpp @@ -70,7 +68,6 @@ rendering/RenderObject.cpp rendering/RenderReplaced.cpp rendering/RenderTextControlSingleLine.cpp rendering/RenderTreeAsText.cpp -rendering/RenderView.cpp rendering/RenderWidget.cpp style/StyleResolver.cpp testing/Internals.cpp diff --git a/Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations b/Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations index b63ab4cd714a0..c91cb51d2af5c 100644 --- a/Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations +++ b/Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations @@ -306,7 +306,6 @@ bindings/js/CachedModuleScriptLoader.cpp bindings/js/CommonVM.cpp bindings/js/DOMPromiseProxy.h bindings/js/DOMWrapperWorld.cpp -bindings/js/IDBBindingUtilities.cpp bindings/js/JSAudioBufferCustom.cpp bindings/js/JSAudioBufferSourceNodeCustom.cpp bindings/js/JSAudioWorkletGlobalScopeCustom.cpp @@ -333,7 +332,6 @@ bindings/js/JSDOMIterator.h bindings/js/JSDOMMapLike.h bindings/js/JSDOMPromiseDeferred.cpp bindings/js/JSDOMPromiseDeferred.h -bindings/js/JSDOMQuadCustom.cpp bindings/js/JSDOMSetLike.h bindings/js/JSDOMWindowBase.cpp bindings/js/JSDOMWindowCustom.cpp @@ -403,7 +401,6 @@ bindings/js/ScriptBufferSourceProvider.h bindings/js/ScriptCachedFrameData.cpp bindings/js/ScriptModuleLoader.cpp bindings/js/ScriptSourceCode.h -bindings/js/SerializedScriptValue.cpp bindings/js/WebAssemblyScriptBufferSourceProvider.h bindings/js/WebCoreJSClientData.cpp bindings/js/WebCoreTypedArrayController.cpp @@ -595,7 +592,6 @@ dom/RejectedPromiseTracker.cpp dom/ScriptExecutionContext.cpp dom/ScriptExecutionContext.h dom/ScriptRunner.cpp -dom/ScriptedAnimationController.cpp dom/SecurityContext.cpp dom/SelectorQuery.cpp dom/ShadowRoot.cpp @@ -808,8 +804,6 @@ html/canvas/WebGLVertexArrayObjectBase.cpp html/canvas/WebGLVertexArrayObjectOES.cpp html/parser/HTMLConstructionSite.cpp html/parser/HTMLConstructionSite.h -html/parser/HTMLDocumentParser.cpp -html/parser/HTMLDocumentParserFastPath.cpp html/parser/HTMLParserScheduler.cpp html/parser/HTMLScriptRunner.cpp html/parser/HTMLTreeBuilder.cpp @@ -885,7 +879,6 @@ loader/ApplicationManifestLoader.cpp loader/CrossOriginAccessControl.cpp loader/CrossOriginOpenerPolicy.cpp loader/CrossOriginPreflightChecker.cpp -loader/DocumentLoader.cpp loader/DocumentThreadableLoader.cpp loader/DocumentWriter.cpp loader/FormSubmission.cpp @@ -901,7 +894,6 @@ loader/PolicyChecker.cpp loader/ResourceLoadNotifier.cpp loader/ResourceLoader.cpp loader/SubframeLoader.cpp -loader/SubresourceLoader.cpp loader/WorkerThreadableLoader.cpp loader/appcache/ApplicationCache.cpp loader/appcache/ApplicationCacheGroup.cpp @@ -947,7 +939,6 @@ page/IntersectionObserver.cpp page/LocalDOMWindow.cpp page/LocalFrame.cpp page/LocalFrameView.cpp -page/LocalFrameViewLayoutContext.cpp page/Location.cpp page/Navigation.cpp page/NavigationDestination.cpp @@ -956,7 +947,6 @@ page/NavigationHistoryEntry.cpp page/NavigationTransition.cpp page/Navigator.cpp page/NavigatorLoginStatus.cpp -page/OpportunisticTaskScheduler.cpp page/PageConsoleClient.cpp page/PageOverlay.cpp page/PageOverlayController.cpp @@ -1002,7 +992,6 @@ page/scrolling/AsyncScrollingCoordinator.cpp page/scrolling/ScrollAnchoringController.cpp page/scrolling/ScrollSnapOffsetsInfo.cpp page/scrolling/ScrollingCoordinator.cpp -page/scrolling/ScrollingStateTree.cpp page/scrolling/ScrollingThread.cpp page/scrolling/ScrollingTreeGestureState.cpp page/scrolling/ScrollingTreeScrollingNodeDelegate.h @@ -1061,11 +1050,9 @@ platform/graphics/TransparencyLayerContextSwitcher.cpp platform/graphics/WidthIterator.cpp platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp -platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm -platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm platform/graphics/avfoundation/objc/WebAVContentKeyGroup.mm platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm @@ -1082,7 +1069,6 @@ platform/graphics/cocoa/FontCacheCoreText.cpp platform/graphics/cocoa/ImageAdapterCocoa.mm platform/graphics/cocoa/SourceBufferParser.cpp platform/graphics/cocoa/VideoMediaSampleRenderer.mm -platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm platform/graphics/controls/ApplePayButtonPart.cpp platform/graphics/controls/ButtonPart.h @@ -1171,8 +1157,6 @@ rendering/LegacyLineLayout.cpp rendering/MarkedText.cpp rendering/MotionPath.cpp rendering/RenderAttachment.cpp -rendering/RenderBlock.cpp -rendering/RenderBlock.h rendering/RenderBox.cpp rendering/RenderBoxModelObject.cpp rendering/RenderButton.cpp @@ -1189,7 +1173,6 @@ rendering/RenderImageResourceStyleImage.cpp rendering/RenderImageResourceStyleImage.h rendering/RenderLayer.cpp rendering/RenderLayerBacking.cpp -rendering/RenderLayerCompositor.cpp rendering/RenderLayerFilters.cpp rendering/RenderLayerModelObject.cpp rendering/RenderListBox.cpp @@ -1225,8 +1208,6 @@ rendering/RenderTheme.cpp rendering/RenderTreeAsText.cpp rendering/RenderVTTCue.cpp rendering/RenderVideo.cpp -rendering/RenderView.cpp -rendering/RenderViewTransitionCapture.cpp rendering/RenderWidget.cpp rendering/TextBoxPainter.cpp rendering/TextPaintStyle.cpp diff --git a/Source/WebCore/SaferCPPExpectations/UncountedLambdaCapturesCheckerExpectations b/Source/WebCore/SaferCPPExpectations/UncountedLambdaCapturesCheckerExpectations index 5884ca414861c..dec6338efdf54 100644 --- a/Source/WebCore/SaferCPPExpectations/UncountedLambdaCapturesCheckerExpectations +++ b/Source/WebCore/SaferCPPExpectations/UncountedLambdaCapturesCheckerExpectations @@ -69,7 +69,6 @@ accessibility/mac/WebAccessibilityObjectWrapperMac.mm animation/BlendingKeyframes.cpp animation/KeyframeEffect.cpp bindings/js/JSDOMPromiseDeferred.cpp -bindings/js/SerializedScriptValue.cpp contentextensions/ContentExtensionsBackend.cpp crypto/SubtleCrypto.cpp css/CSSFontFace.cpp @@ -112,11 +111,9 @@ html/track/TrackListBase.cpp html/track/VTTCue.cpp inspector/InspectorOverlay.cpp inspector/agents/page/PageDOMDebuggerAgent.cpp -loader/DocumentLoader.cpp loader/FrameLoader.cpp loader/NetscapePlugInStreamLoader.cpp loader/ResourceLoader.cpp -loader/SubresourceLoader.cpp page/EventSource.cpp page/ImageAnalysisQueue.cpp page/LocalDOMWindow.cpp @@ -139,8 +136,6 @@ platform/encryptedmedia/clearkey/CDMClearKey.cpp platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm platform/graphics/avfoundation/objc/InbandChapterTrackPrivateAVFObjC.mm -platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm -platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm platform/graphics/cocoa/VideoMediaSampleRenderer.mm platform/graphics/filters/FilterOperation.cpp platform/mediarecorder/MediaRecorderPrivateEncoder.cpp diff --git a/Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations b/Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations index 1f4b005a5b97a..c85f8facdf95e 100644 --- a/Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations +++ b/Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations @@ -203,7 +203,6 @@ bindings/js/JSWorkerGlobalScopeCustom.cpp bindings/js/JSXMLHttpRequestCustom.cpp bindings/js/ScriptCachedFrameData.cpp bindings/js/ScriptModuleLoader.cpp -bindings/js/SerializedScriptValue.cpp bindings/js/WebCoreJSClientData.cpp bindings/js/WindowProxy.cpp bridge/objc/WebScriptObject.mm @@ -304,7 +303,6 @@ dom/RadioButtonGroups.cpp dom/Range.cpp dom/RejectedPromiseTracker.cpp dom/ScriptExecutionContext.cpp -dom/ScriptedAnimationController.cpp dom/SelectorQuery.cpp dom/ShadowRoot.cpp dom/SimpleRange.cpp @@ -434,7 +432,6 @@ html/canvas/WebGLProvokingVertex.cpp html/canvas/WebGLRenderingContextBase.cpp html/canvas/WebGLUtilities.h html/parser/HTMLConstructionSite.cpp -html/parser/HTMLDocumentParser.cpp html/shadow/DateTimeEditElement.cpp html/shadow/MediaControlTextTrackContainerElement.cpp html/shadow/SliderThumbElement.cpp @@ -487,7 +484,6 @@ layout/formattingContexts/inline/InlineLineBoxBuilder.cpp layout/integration/inline/LayoutIntegrationLineLayout.cpp layout/layouttree/LayoutTreeBuilder.cpp loader/ApplicationManifestLoader.cpp -loader/DocumentLoader.cpp loader/FrameLoader.cpp loader/NavigationAction.cpp loader/NavigationScheduler.cpp @@ -525,7 +521,6 @@ page/IntersectionObserver.cpp page/LocalDOMWindow.cpp page/LocalFrame.cpp page/LocalFrameView.cpp -page/LocalFrameViewLayoutContext.cpp page/Location.cpp page/Navigation.cpp page/Navigator.cpp @@ -606,8 +601,6 @@ platform/graphics/ca/TileGrid.cpp platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm platform/graphics/cocoa/controls/ApplePayButtonCocoa.mm platform/graphics/coretext/ComplexTextControllerCoreText.mm -platform/graphics/coretext/GlyphPageCoreText.cpp -platform/graphics/cv/VideoFrameCV.mm platform/graphics/displaylists/DisplayListItem.cpp platform/graphics/displaylists/DisplayListItems.cpp platform/graphics/displaylists/DisplayListRecorder.cpp @@ -642,7 +635,6 @@ rendering/MarkedText.cpp rendering/MotionPath.cpp rendering/ReferencedSVGResources.cpp rendering/RenderAttachment.cpp -rendering/RenderBlock.cpp rendering/RenderBox.cpp rendering/RenderCounter.cpp rendering/RenderElement.cpp @@ -652,7 +644,6 @@ rendering/RenderImage.cpp rendering/RenderImageResource.cpp rendering/RenderLayer.cpp rendering/RenderLayerBacking.cpp -rendering/RenderLayerCompositor.cpp rendering/RenderLayerFilters.cpp rendering/RenderLayerModelObject.cpp rendering/RenderListBox.cpp @@ -671,7 +662,6 @@ rendering/RenderTextControlSingleLine.cpp rendering/RenderTextControlSingleLine.h rendering/RenderTheme.cpp rendering/RenderTreeAsText.cpp -rendering/RenderView.cpp rendering/RenderWidget.cpp rendering/TextBoxPainter.cpp rendering/TextPaintStyle.cpp diff --git a/Source/WebCore/Sources.txt b/Source/WebCore/Sources.txt index 414b4b0a11e4b..4b56e11842aac 100644 --- a/Source/WebCore/Sources.txt +++ b/Source/WebCore/Sources.txt @@ -140,6 +140,7 @@ Modules/fetch/WindowOrWorkerGlobalScopeFetch.cpp Modules/filesystemaccess/FileSystemDirectoryHandle.cpp Modules/filesystemaccess/FileSystemFileHandle.cpp Modules/filesystemaccess/FileSystemHandle.cpp +Modules/filesystemaccess/FileSystemStorageConnection.cpp Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp Modules/filesystemaccess/FileSystemWritableFileStream.cpp Modules/filesystemaccess/FileSystemWritableFileStreamSink.cpp diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj index 48c1a4a75df74..1d0061a57547c 100644 --- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj @@ -2851,8 +2851,8 @@ 7261481C2A97C66F00B75E32 /* DisplayListItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 7261481B2A97BD9B00B75E32 /* DisplayListItem.h */; settings = {ATTRIBUTES = (Private, ); }; }; 7263D505292C472D00CA9D10 /* GraphicsStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 7263D503292C472B00CA9D10 /* GraphicsStyle.h */; settings = {ATTRIBUTES = (Private, ); }; }; 726516E62C9CB75600647895 /* ContentsFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 726516E42C9BB70E00647895 /* ContentsFormat.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 726516F72CA4B4A300647895 /* ContentsFormatCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 726516F52CA4AEDC00647895 /* ContentsFormatCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; }; 726516E62C9CB75600647896 /* PlatformDynamicRangeLimit.h in Headers */ = {isa = PBXBuildFile; fileRef = 726516E42C9BB70E00647896 /* PlatformDynamicRangeLimit.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 726516F72CA4B4A300647895 /* ContentsFormatCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 726516F52CA4AEDC00647895 /* ContentsFormatCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; }; 726CDE202759735000A445B2 /* FilterEffectGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = 729661A2275960A500E7DF9B /* FilterEffectGeometry.h */; settings = {ATTRIBUTES = (Private, ); }; }; 726D56E2253AE28D0002EF90 /* PlatformImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 726D56E1253AE0430002EF90 /* PlatformImage.h */; settings = {ATTRIBUTES = (Private, ); }; }; 726D56E3253AE3660002EF90 /* NativeImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 55A336F61D8209F40022C4C7 /* NativeImage.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -8015,7 +8015,7 @@ 1AAADDE114DC8C8F00AF64B3 /* ScrollingTreeNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollingTreeNode.cpp; sourceTree = ""; }; 1AAADDE214DC8C8F00AF64B3 /* ScrollingTreeNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollingTreeNode.h; sourceTree = ""; }; 1AB33DA412551E320024457A /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; - 1AB39CC62C98CEA100B8AD82 /* NameScope.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NameScope.h; sourceTree = ""; }; + 1AB39CC62C98CEA100B8AD82 /* NameScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NameScope.h; sourceTree = ""; }; 1AB40EDF1BF4271E00BA81BE /* ContextMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContextMenu.cpp; sourceTree = ""; }; 1AB40EE01BF4271E00BA81BE /* ContextMenuItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContextMenuItem.cpp; sourceTree = ""; }; 1AB5EBCF194A1D170059AC70 /* ShapeValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShapeValue.cpp; sourceTree = ""; }; @@ -10470,6 +10470,7 @@ 41AF37921F8DA48A00111C31 /* ExtendableEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExtendableEvent.cpp; sourceTree = ""; }; 41AF37941F8DA49500111C31 /* FetchEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FetchEvent.cpp; sourceTree = ""; }; 41AF379C1F8DB1B100111C31 /* JSDOMPromise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMPromise.cpp; sourceTree = ""; }; + 41B109772D554D99008A11E8 /* FileSystemStorageConnection.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemStorageConnection.cpp; sourceTree = ""; }; 41B28B121F8501A300FB52AC /* MediaEndpointConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaEndpointConfiguration.h; sourceTree = ""; }; 41B28B131F8501A400FB52AC /* MediaEndpointConfiguration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaEndpointConfiguration.cpp; sourceTree = ""; }; 41B28B361F860BD000FB52AC /* LibWebRTCProviderCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LibWebRTCProviderCocoa.h; path = libwebrtc/LibWebRTCProviderCocoa.h; sourceTree = ""; }; @@ -13409,10 +13410,10 @@ 7263D503292C472B00CA9D10 /* GraphicsStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GraphicsStyle.h; sourceTree = ""; }; 7263D504292C472C00CA9D10 /* GraphicsStyle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsStyle.cpp; sourceTree = ""; }; 726516E42C9BB70E00647895 /* ContentsFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContentsFormat.h; sourceTree = ""; }; - 726516E52C9CB59900647895 /* ContentsFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContentsFormat.cpp; sourceTree = ""; }; - 726516F52CA4AEDC00647895 /* ContentsFormatCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContentsFormatCocoa.h; sourceTree = ""; }; 726516E42C9BB70E00647896 /* PlatformDynamicRangeLimit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformDynamicRangeLimit.h; sourceTree = ""; }; + 726516E52C9CB59900647895 /* ContentsFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContentsFormat.cpp; sourceTree = ""; }; 726516E52C9CB59900647896 /* PlatformDynamicRangeLimit.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformDynamicRangeLimit.cpp; sourceTree = ""; }; + 726516F52CA4AEDC00647895 /* ContentsFormatCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContentsFormatCocoa.h; sourceTree = ""; }; 7266F0132241BCE200833975 /* SVGPropertyAnimatorFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGPropertyAnimatorFactory.h; sourceTree = ""; }; 7266F0142241BFB200833975 /* SVGPrimitivePropertyAnimatorImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGPrimitivePropertyAnimatorImpl.h; sourceTree = ""; }; 7266F0152241C09800833975 /* SVGPrimitivePropertyAnimator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGPrimitivePropertyAnimator.h; sourceTree = ""; }; @@ -30043,6 +30044,7 @@ 932C9BD926DD62600053B3DB /* FileSystemHandle.idl */, 93445082276A6356001F712B /* FileSystemHandleCloseScope.h */, 935424272703BC88005CA72C /* FileSystemHandleIdentifier.h */, + 41B109772D554D99008A11E8 /* FileSystemStorageConnection.cpp */, 935424292703BCAD005CA72C /* FileSystemStorageConnection.h */, 93E269A0270A5D5C002C4FF0 /* FileSystemSyncAccessHandle.cpp */, 93E2699F270A5D5C002C4FF0 /* FileSystemSyncAccessHandle.h */, @@ -34778,6 +34780,7 @@ AB31C91D10AE1B8E000C7B92 /* LineClampValue.h */, 4CF2530E29C09454005CDDAA /* ListStyleType.cpp */, 4C96385729BF4A51003E5741 /* ListStyleType.h */, + 1AB39CC62C98CEA100B8AD82 /* NameScope.h */, BCEF43DF0E674110001C1287 /* NinePieceImage.cpp */, BCEF43DC0E674012001C1287 /* NinePieceImage.h */, 668A1B032723A41500765E0F /* OffsetRotation.cpp */, @@ -37988,7 +37991,6 @@ 4471710C205AF945000A116E /* MediaQueryParserContext.h */, 930A76C7297FA1C40055B743 /* MutableStyleProperties.cpp */, 930A76C6297FA1C30055B743 /* MutableStyleProperties.h */, - 1AB39CC62C98CEA100B8AD82 /* NameScope.h */, 49CCE6F72997441F006C91EB /* popover.css */, BC8A133629177FB700096A9F /* process-css-properties.py */, 491342972B425C0200FEEF18 /* process-css-pseudo-selectors.py */, diff --git a/Source/WebCore/accessibility/AXCoreObject.cpp b/Source/WebCore/accessibility/AXCoreObject.cpp index 652a5830ada8e..c3e7d04fa66b5 100644 --- a/Source/WebCore/accessibility/AXCoreObject.cpp +++ b/Source/WebCore/accessibility/AXCoreObject.cpp @@ -215,6 +215,13 @@ AXCoreObject::AccessibilityChildrenVector AXCoreObject::tabChildren() } #if ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) +static bool isValidChildForTable(AXCoreObject& object) +{ + auto role = object.roleValue(); + // Tables can only have these roles as exposed-to-AT children. + return role == AccessibilityRole::Row || role == AccessibilityRole::Column || role == AccessibilityRole::TableHeaderContainer || role == AccessibilityRole::Caption; +} + AXCoreObject::AccessibilityChildrenVector AXCoreObject::unignoredChildren(bool updateChildrenIfNeeded) { if (onlyAddsUnignoredChildren()) @@ -227,12 +234,7 @@ AXCoreObject::AccessibilityChildrenVector AXCoreObject::unignoredChildren(bool u const auto& children = childrenIncludingIgnored(updateChildrenIfNeeded); RefPtr descendant = children.size() ? children[0].ptr() : nullptr; while (descendant && descendant != this) { - bool childIsValid = true; - if (isExposedTable) { - auto role = descendant->roleValue(); - // Tables can only have these roles as exposed-to-AT children. - childIsValid = role == AccessibilityRole::Row || role == AccessibilityRole::Column || role == AccessibilityRole::TableHeaderContainer || role == AccessibilityRole::Caption; - } + bool childIsValid = !isExposedTable || isValidChildForTable(*descendant); if (!childIsValid || descendant->isIgnored()) { descendant = descendant->nextInPreOrder(updateChildrenIfNeeded, /* stayWithin */ this); continue; @@ -248,13 +250,27 @@ AXCoreObject::AccessibilityChildrenVector AXCoreObject::unignoredChildren(bool u } return unignoredChildren; } + +AXCoreObject* AXCoreObject::firstUnignoredChild() +{ + const auto& children = childrenIncludingIgnored(/* updateChildrenIfNeeded */ true); + RefPtr descendant = children.size() ? children[0].ptr() : nullptr; + if (onlyAddsUnignoredChildren()) + return descendant.get(); + + bool isExposedTable = isTable() && isExposable(); + while (descendant && descendant != this) { + bool childIsValid = !isExposedTable || isValidChildForTable(*descendant); + if (childIsValid && !descendant->isIgnored()) + return descendant.get(); + descendant = descendant->nextInPreOrder(/* updateChildrenIfNeeded */ true, /* stayWithin */ this); + } + return nullptr; +} #endif // ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) AXCoreObject* AXCoreObject::nextInPreOrder(bool updateChildrenIfNeeded, AXCoreObject* stayWithin) { - if (updateChildrenIfNeeded) - updateChildrenIfNecessary(); - const auto& children = childrenIncludingIgnored(updateChildrenIfNeeded); if (!children.isEmpty()) { auto role = roleValue(); @@ -280,9 +296,6 @@ AXCoreObject* AXCoreObject::nextInPreOrder(bool updateChildrenIfNeeded, AXCoreOb AXCoreObject* AXCoreObject::previousInPreOrder(bool updateChildrenIfNeeded, AXCoreObject* stayWithin) { - if (updateChildrenIfNeeded) - updateChildrenIfNecessary(); - if (stayWithin == this) return nullptr; @@ -318,7 +331,9 @@ AXCoreObject* AXCoreObject::nextSiblingIncludingIgnored(bool updateChildrenIfNee return nullptr; const auto& siblings = parent->childrenIncludingIgnored(updateChildrenIfNeeded); - size_t indexOfThis = siblings.find(Ref { *this }); + size_t indexOfThis = siblings.findIf([this] (const Ref& object) { + return object.ptr() == this; + }); if (indexOfThis == notFound) return nullptr; @@ -332,7 +347,9 @@ AXCoreObject* AXCoreObject::previousSiblingIncludingIgnored(bool updateChildrenI return nullptr; const auto& siblings = parent->childrenIncludingIgnored(updateChildrenIfNeeded); - size_t indexOfThis = siblings.find(Ref { *this }); + size_t indexOfThis = siblings.findIf([this] (const Ref& object) { + return object.ptr() == this; + }); if (indexOfThis == notFound) return nullptr; @@ -349,7 +366,9 @@ AXCoreObject* AXCoreObject::nextUnignoredSibling(bool updateChildrenIfNeeded, AX if (!parent) return nullptr; const auto& siblings = parent->unignoredChildren(updateChildrenIfNeeded); - size_t indexOfThis = siblings.find(Ref { *this }); + size_t indexOfThis = siblings.findIf([this] (const Ref& object) { + return object.ptr() == this; + }); if (indexOfThis == notFound) return nullptr; diff --git a/Source/WebCore/accessibility/AXCoreObject.h b/Source/WebCore/accessibility/AXCoreObject.h index 8d0fd24ff244e..55378243c0364 100644 --- a/Source/WebCore/accessibility/AXCoreObject.h +++ b/Source/WebCore/accessibility/AXCoreObject.h @@ -895,6 +895,9 @@ class AXCoreObject : public ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtrchildren(); + return children.size() ? children[0].ptr() : nullptr; + } #endif // ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) // When ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) is true, this returns IDs of ignored children. @@ -1273,7 +1282,6 @@ class AXCoreObject : public ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr childrenIDs(bool updateChildrenIfNeeded = true); - virtual void updateChildrenIfNecessary() = 0; AXCoreObject* nextInPreOrder(bool updateChildrenIfNeeded = true, AXCoreObject* stayWithin = nullptr); AXCoreObject* nextSiblingIncludingIgnored(bool updateChildrenIfNeeded) const; AXCoreObject* nextUnignoredSibling(bool updateChildrenIfNeeded, AXCoreObject* unignoredParent = nullptr) const; diff --git a/Source/WebCore/accessibility/AXObjectCache.cpp b/Source/WebCore/accessibility/AXObjectCache.cpp index db3ecfc068853..d8c1c3a26e913 100644 --- a/Source/WebCore/accessibility/AXObjectCache.cpp +++ b/Source/WebCore/accessibility/AXObjectCache.cpp @@ -1956,6 +1956,11 @@ void AXObjectCache::onSelectedChanged(Element& element) handleTabPanelSelected(nullptr, &element); } +void AXObjectCache::onSlottedContentChange(const HTMLSlotElement& slot) +{ + childrenChanged(get(const_cast(slot))); +} + void AXObjectCache::onStyleChange(Element& element, Style::Change change, const RenderStyle* oldStyle, const RenderStyle* newStyle) { if (change == Style::Change::None || !oldStyle || !newStyle) @@ -2868,8 +2873,17 @@ void AXObjectCache::handleAttributeChange(Element* element, const QualifiedName& else if (attrName == aria_haspopupAttr) postNotification(element, AXNotification::HasPopupChanged); else if (attrName == aria_hiddenAttr) { +#if ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) + if (RefPtr axObject = getOrCreate(*element)) { + Accessibility::enumerateDescendantsIncludingIgnored(*axObject, /* includeSelf */ true, [] (auto& descendant) { + downcast(descendant).recomputeIsIgnored(); + }); + } +#else if (RefPtr parent = get(element->parentNode())) childrenChanged(parent.get()); +#endif // ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) + if (m_currentModalElement && m_currentModalElement->isDescendantOf(element)) deferModalChange(*m_currentModalElement); @@ -4302,6 +4316,17 @@ bool AXObjectCache::elementIsTextControl(const Element& element) return axObject && axObject->isTextControl(); } +static bool documentNeedsLayoutOrStyleRecalc(Document& document) +{ + auto* frameView = document.view(); + if (frameView) { + if (frameView->needsLayout() || frameView->layoutContext().isLayoutPending()) + return true; + } + + return document.hasPendingStyleRecalc(); +} + void AXObjectCache::performDeferredCacheUpdate(ForceLayout forceLayout) { AXTRACE(makeString("AXObjectCache::performDeferredCacheUpdate 0x"_s, hex(reinterpret_cast(this)))); @@ -4321,7 +4346,7 @@ void AXObjectCache::performDeferredCacheUpdate(ForceLayout forceLayout) if (!document->view()) return; - if (document->view()->needsLayout()) { + if (documentNeedsLayoutOrStyleRecalc(*document)) { // Layout became dirty while waiting to performDeferredCacheUpdate, and we require clean layout // to update the accessibility tree correctly in this function. if ((m_cacheUpdateDeferredCount >= 3 || forceLayout == ForceLayout::Yes) && !Accessibility::inRenderTreeOrStyleUpdate(*document)) { @@ -4341,7 +4366,7 @@ void AXObjectCache::performDeferredCacheUpdate(ForceLayout forceLayout) for (; frame; frame = frame->tree().traverseNext()) { auto* localFrame = dynamicDowncast(frame.get()); RefPtr subDocument = localFrame ? localFrame->document() : nullptr; - if (subDocument && subDocument->view() && subDocument->view()->needsLayout()) + if (subDocument && documentNeedsLayoutOrStyleRecalc(*subDocument)) subDocument->updateLayoutIgnorePendingStylesheets(); } } diff --git a/Source/WebCore/accessibility/AXObjectCache.h b/Source/WebCore/accessibility/AXObjectCache.h index 2be583a117f8a..78ed83fdcf8b0 100644 --- a/Source/WebCore/accessibility/AXObjectCache.h +++ b/Source/WebCore/accessibility/AXObjectCache.h @@ -362,6 +362,7 @@ class AXObjectCache final : public CanMakeWeakPtr, public CanMake void onPopoverToggle(const HTMLElement&); void onScrollbarFrameRectChange(const Scrollbar&); void onSelectedChanged(Element&); + void onSlottedContentChange(const HTMLSlotElement&); void onStyleChange(Element&, Style::Change, const RenderStyle* oldStyle, const RenderStyle* newStyle); void onStyleChange(RenderText&, StyleDifference, const RenderStyle* oldStyle, const RenderStyle& newStyle); void onTextSecurityChanged(HTMLInputElement&); diff --git a/Source/WebCore/accessibility/AXSearchManager.cpp b/Source/WebCore/accessibility/AXSearchManager.cpp index 2725fafa39b27..653f8f922991f 100644 --- a/Source/WebCore/accessibility/AXSearchManager.cpp +++ b/Source/WebCore/accessibility/AXSearchManager.cpp @@ -198,7 +198,7 @@ bool AXSearchManager::matchWithResultsLimit(Ref object, const Acce static void appendAccessibilityObject(Ref object, AccessibilityObject::AccessibilityChildrenVector& results) { if (LIKELY(!object->isAttachment())) - results.append(object); + results.append(WTFMove(object)); else { // Find the next descendant of this attachment object so search can continue through frames. Widget* widget = object->widgetForAttachmentView(); @@ -250,7 +250,12 @@ static void appendChildrenToArray(Ref object, bool isForward, RefP startObject = newStartObject; } - size_t searchPosition = startObject ? searchChildren.find(Ref { *startObject }) : notFound; + size_t searchPosition = notFound; + if (startObject) { + searchPosition = searchChildren.findIf([&] (const Ref& object) { + return startObject == object.ptr(); + }); + } if (searchPosition != notFound) { if (isForward) diff --git a/Source/WebCore/accessibility/AXTextMarker.cpp b/Source/WebCore/accessibility/AXTextMarker.cpp index c48583e7fa9ff..c1c93a82bbe4b 100644 --- a/Source/WebCore/accessibility/AXTextMarker.cpp +++ b/Source/WebCore/accessibility/AXTextMarker.cpp @@ -276,14 +276,28 @@ AXTextMarkerRange::AXTextMarkerRange(const std::optional& range) AXTextMarkerRange::AXTextMarkerRange(const AXTextMarker& start, const AXTextMarker& end) { - bool reverse = is_gt(partialOrder(start, end)); + std::partial_ordering order = partialOrder(start, end); + if (order == std::partial_ordering::unordered) { + m_start = { }; + m_end = { }; + return; + } + + bool reverse = is_gt(order); m_start = reverse ? end : start; m_end = reverse ? start : end; } AXTextMarkerRange::AXTextMarkerRange(AXTextMarker&& start, AXTextMarker&& end) { - bool reverse = is_gt(partialOrder(start, end)); + std::partial_ordering order = partialOrder(start, end); + if (order == std::partial_ordering::unordered) { + m_start = { }; + m_end = { }; + return; + } + + bool reverse = is_gt(order); m_start = reverse ? WTFMove(end) : WTFMove(start); m_end = reverse ? WTFMove(start) : WTFMove(end); } @@ -953,30 +967,35 @@ AXTextMarker AXTextMarker::findMarker(AXDirection direction, CoalesceObjectBreak // - ignoreBRs: In most cases, we want to skip
tags when not in an editable context. This is not true, // for example, when computing text marker indexes. - if (!isValid()) + RefPtr object = isolatedObject(); + if (!object) { + // Equivalent to checking AXTextMarker::isValid, but "inlined" because this function is super hot. return { }; - if (!isInTextRun()) + } + const auto* runs = object->textRuns(); + if (!runs || !runs->size()) { + // Equivalent to checking AXTextMarker::isInTextRun, but "inlined" because this function is super hot. return toTextRunMarker().findMarker(direction, coalesceObjectBreaks, ignoreBRs, stopAtID); - - RefPtr object = isolatedObject(); + } // If the BR isn't in an editable ancestor, we shouldn't be including it (in most cases of findMarker). bool shouldSkipBR = ignoreBRs == IgnoreBRs::Yes && object && object->roleValue() == AccessibilityRole::LineBreak && !object->editableAncestor(); - bool isWithinRunBounds = ((direction == AXDirection::Next && offset() < runs()->totalLength()) || (direction == AXDirection::Previous && offset())); + bool isWithinRunBounds = ((direction == AXDirection::Next && offset() < runs->totalLength()) || (direction == AXDirection::Previous && offset())); if (!shouldSkipBR && isWithinRunBounds) { - if (runs()->containsOnlyASCII) { + if (runs->containsOnlyASCII) { // In the common case where the text-runs only contain ASCII, all we need to do is the move the offset by 1, // which is more efficient than turning the runs into a string and creating a CachedTextBreakIterator. return AXTextMarker { treeID(), objectID(), direction == AXDirection::Next ? offset() + 1 : offset() - 1 }; } - CachedTextBreakIterator iterator(runs()->toString(), { }, TextBreakIterator::CaretMode { }, nullAtom()); + CachedTextBreakIterator iterator(runs->toString(), { }, TextBreakIterator::CaretMode { }, nullAtom()); unsigned newOffset = direction == AXDirection::Next ? iterator.following(offset()).value_or(offset() + 1) : iterator.preceding(offset()).value_or(offset() - 1); return AXTextMarker { treeID(), objectID(), newOffset }; } // offset() pointed to the last character in the given object's runs, so let's traverse to find the next object with runs. - if (RefPtr object = findObjectWithRuns(*isolatedObject(), direction, stopAtID)) { + object = findObjectWithRuns(*object, direction, stopAtID); + if (object) { RELEASE_ASSERT(direction == AXDirection::Next ? object->textRuns()->runLength(0) : object->textRuns()->lastRunLength()); // The startingOffset is used to advance one position farther when we are coalescing object breaks and skipping positions. @@ -986,7 +1005,6 @@ AXTextMarker AXTextMarker::findMarker(AXDirection direction, CoalesceObjectBreak return AXTextMarker { *object, direction == AXDirection::Next ? startingOffset : object->textRuns()->lastRunLength() - startingOffset }; } - return { }; } @@ -1320,13 +1338,19 @@ AXTextMarkerRange AXTextMarker::wordRange(WordRangeType type) const endMarker = nextWordEnd(); startMarker = endMarker.previousWordStart(); // Don't return a right word if the word start is more than a position away from current text marker (e.g., there's a space between the word and current marker). - if (is_gt(partialOrder(startMarker, *this))) + std::partial_ordering order = partialOrder(startMarker, *this); + if (order == std::partial_ordering::unordered) + return { }; + if (is_gt(order)) return { *this, *this }; } else { startMarker = previousWordStart(); endMarker = startMarker.nextWordEnd(); // Don't return a left word if the word end is more than a position away from current text marker. - if (is_lt(partialOrder(endMarker, *this))) + std::partial_ordering order = partialOrder(endMarker, *this); + if (order == std::partial_ordering::unordered) + return { }; + if (is_lt(order)) return { *this, *this }; } @@ -1403,7 +1427,11 @@ std::partial_ordering AXTextMarker::partialOrderByTraversal(const AXTextMarker& if (current) return std::partial_ordering::greater; - RELEASE_ASSERT_NOT_REACHED(); + // It is possible to reach here if the live and isolated trees are not synced, and [next/previous]inPreOrder + // is unable to traverse between two nodes. This can happen when an element's parent or subtree is removed and + // those updates have not been fully applied. + // We don't release assert here, since the callers of partialOrder can now handle unordered ordering. + ASSERT_NOT_REACHED(); return std::partial_ordering::unordered; } diff --git a/Source/WebCore/accessibility/AccessibilityObject.h b/Source/WebCore/accessibility/AccessibilityObject.h index e4cde25203302..46b1c36518737 100644 --- a/Source/WebCore/accessibility/AccessibilityObject.h +++ b/Source/WebCore/accessibility/AccessibilityObject.h @@ -542,7 +542,7 @@ class AccessibilityObject : public AXCoreObject, public CanMakeWeakPtr& child) { + return child.ptr() == childObject; + }); + ++insertionIndex; + } continue; } @@ -2574,12 +2578,12 @@ void AccessibilityRenderObject::addChildren() // being part of the accessibility tree. RefPtr node = dynamicDowncast(this->node()); auto* element = dynamicDowncast(node.get()); - CheckedPtr cache = axObjectCache(); + WeakPtr cache = axObjectCache(); // ::before and ::after pseudos should be the first and last children of the element // that generates them (rather than being siblings to the generating element). if (RefPtr beforePseudo = element ? element->beforePseudoElement() : nullptr) { - if (RefPtr pseudoObject = cache->getOrCreate(*beforePseudo)) + if (RefPtr pseudoObject = cache ? cache->getOrCreate(*beforePseudo) : nullptr) addChildIfNeeded(*pseudoObject); } @@ -2600,7 +2604,7 @@ void AccessibilityRenderObject::addChildren() } if (RefPtr afterPseudo = element ? element->afterPseudoElement() : nullptr) { - if (RefPtr pseudoObject = cache->getOrCreate(*afterPseudo)) + if (RefPtr pseudoObject = cache ? cache->getOrCreate(*afterPseudo) : nullptr) addChildIfNeeded(*pseudoObject); } #else diff --git a/Source/WebCore/accessibility/AccessibilityScrollView.cpp b/Source/WebCore/accessibility/AccessibilityScrollView.cpp index 3f463910653ef..4edff0922dc75 100644 --- a/Source/WebCore/accessibility/AccessibilityScrollView.cpp +++ b/Source/WebCore/accessibility/AccessibilityScrollView.cpp @@ -177,7 +177,9 @@ void AccessibilityScrollView::removeChildScrollbar(AccessibilityObject* scrollba if (!scrollbar) return; - size_t position = m_children.find(Ref { *scrollbar }); + size_t position = m_children.findIf([&scrollbar] (const Ref& child) { + return child.ptr() == scrollbar; + }); if (position != notFound) { m_children[position]->detachFromParent(); m_children.remove(position); diff --git a/Source/WebCore/accessibility/atspi/AccessibilityObjectComponentAtspi.cpp b/Source/WebCore/accessibility/atspi/AccessibilityObjectComponentAtspi.cpp index abd6468e9a123..9ac2535fa567f 100644 --- a/Source/WebCore/accessibility/atspi/AccessibilityObjectComponentAtspi.cpp +++ b/Source/WebCore/accessibility/atspi/AccessibilityObjectComponentAtspi.cpp @@ -112,7 +112,8 @@ AccessibilityObjectAtspi* AccessibilityObjectAtspi::hitTest(const IntPoint& poin } } - m_coreObject->updateChildrenIfNecessary(); + if (auto* axObject = dynamicDowncast(m_coreObject.get())) + axObject->updateChildrenIfNecessary(); if (auto* coreObject = m_coreObject->accessibilityHitTest(convertedPoint)) return coreObject->wrapper(); diff --git a/Source/WebCore/accessibility/cocoa/AXCoreObjectCocoa.mm b/Source/WebCore/accessibility/cocoa/AXCoreObjectCocoa.mm index b1f718f9d284c..bceb7ffe31dc8 100644 --- a/Source/WebCore/accessibility/cocoa/AXCoreObjectCocoa.mm +++ b/Source/WebCore/accessibility/cocoa/AXCoreObjectCocoa.mm @@ -263,6 +263,39 @@ static void attributedStringSetStyle(NSMutableAttributedString *attributedString return string; } + +NSArray *renderWidgetChildren(const AXCoreObject& object) +{ + if (LIKELY(!object.isWidget())) + return nil; + + id child = Accessibility::retrieveAutoreleasedValueFromMainThread([object = Ref { object }] () -> RetainPtr { + RefPtr widget = object->widget(); + return widget ? widget->accessibilityObject() : nil; + }); + + if (child) + return @[child]; +ALLOW_DEPRECATED_DECLARATIONS_BEGIN + return [object.platformWidget() accessibilityAttributeValue:NSAccessibilityChildrenAttribute]; +ALLOW_DEPRECATED_DECLARATIONS_END +} + +bool AXCoreObject::isEmptyGroup() +{ +#if ENABLE(MODEL_ELEMENT) + if (UNLIKELY(isModel())) + return false; +#endif + + if (UNLIKELY(isRemoteFrame())) + return false; + + return [rolePlatformString() isEqual:NSAccessibilityGroupRole] + && !firstUnignoredChild() + && ![renderWidgetChildren(*this) count]; +} + #endif // PLATFORM(MAC) } // namespace WebCore diff --git a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp b/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp index e9e85e5f1f06e..f96ad074e3f76 100644 --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp +++ b/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp @@ -686,32 +686,18 @@ const AXCoreObject::AccessibilityChildrenVector& AXIsolatedObject::children(bool #elif USE(ATSPI) ASSERT(!isMainThread()); #endif - RefPtr protectedThis; - if (updateChildrenIfNeeded) { - // updateBackingStore can delete `this`, so protect it until the end of this function. - protectedThis = this; - updateBackingStore(); - - if (m_childrenDirty) { - m_children = WTF::compactMap(m_childrenIDs, [&](auto& childID) -> std::optional> { - if (RefPtr child = tree()->objectForID(childID)) - return child.releaseNonNull(); - return std::nullopt; - }); - m_childrenDirty = false; - } + if (updateChildrenIfNeeded && m_childrenDirty) { + m_children = WTF::compactMap(m_childrenIDs, [&](auto& childID) -> std::optional> { + if (RefPtr child = tree()->objectForID(childID)) + return child.releaseNonNull(); + return std::nullopt; + }); + m_childrenDirty = false; ASSERT(m_children.size() == m_childrenIDs.size()); } return m_children; } -void AXIsolatedObject::updateChildrenIfNecessary() -{ - // FIXME: this is a no-op for isolated objects and should be removed from - // the public interface. It is used in the mac implementation of - // [WebAccessibilityObjectWrapper accessibilityHitTest]. -} - void AXIsolatedObject::setSelectedChildren(const AccessibilityChildrenVector& selectedChildren) { ASSERT(selectedChildren.isEmpty() || selectedChildren[0]->isAXIsolatedObjectInstance()); diff --git a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h b/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h index f6ab458c57981..774c7d9077e5e 100644 --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h +++ b/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h @@ -348,7 +348,6 @@ class AXIsolatedObject final : public AXCoreObject { void setSelectedChildren(const AccessibilityChildrenVector&) final; AccessibilityChildrenVector visibleChildren() final { return tree()->objectsForIDs(vectorAttributeValue(AXProperty::VisibleChildren)); } void setChildrenIDs(Vector&&); - void updateChildrenIfNecessary() final; bool isDetachedFromParent() final; AXIsolatedObject* liveRegionAncestor(bool excludeIfOff = true) const final { return Accessibility::liveRegionAncestor(*this, excludeIfOff); } const String liveRegionStatus() const final { return stringAttributeValue(AXProperty::LiveRegionStatus); } diff --git a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm b/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm index 532745b1d4783..c0c3b0e661c1f 100644 --- a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm +++ b/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm @@ -205,43 +205,8 @@ return Accessibility::roleToPlatformString(role); } -static bool isEmptyGroup(AccessibilityObject& object) -{ -#if ENABLE(MODEL_ELEMENT) - if (object.isModel()) - return false; -#endif - - if (object.isRemoteFrame()) - return false; - - return [object.rolePlatformString() isEqual:NSAccessibilityGroupRole] - && object.unignoredChildren().isEmpty() - && ![renderWidgetChildren(object) count]; -} - -NSArray *renderWidgetChildren(const AXCoreObject& object) -{ - if (!object.isWidget()) - return nil; - - id child = Accessibility::retrieveAutoreleasedValueFromMainThread([object = Ref { object }] () -> RetainPtr { - auto* widget = object->widget(); - return widget ? widget->accessibilityObject() : nil; - }); - - if (child) - return @[child]; -ALLOW_DEPRECATED_DECLARATIONS_BEGIN - return [object.platformWidget() accessibilityAttributeValue:NSAccessibilityChildrenAttribute]; -ALLOW_DEPRECATED_DECLARATIONS_END -} - String AccessibilityObject::subrolePlatformString() const { - if (isEmptyGroup(*const_cast(this))) - return NSAccessibilityEmptyGroupSubrole; - if (isSecureField()) return NSAccessibilitySecureTextFieldSubrole; if (isSearchField()) diff --git a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm index 8268664516738..34c5b91643d27 100644 --- a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm +++ b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm @@ -1106,6 +1106,9 @@ - (NSBezierPath *)path static NSString *subroleString(AXCoreObject& backingObject) { + if (backingObject.isEmptyGroup()) + return NSAccessibilityEmptyGroupSubrole; + String subrole = backingObject.subrolePlatformString(); if (!subrole.isEmpty()) return subrole; @@ -2052,7 +2055,8 @@ - (id)_accessibilityHitTest:(NSPoint)point returnPlatformElements:(BOOL)returnPl if (!backingObject) return nil; - backingObject->updateChildrenIfNecessary(); + if (auto* axObject = dynamicDowncast(backingObject.get())) + axObject->updateChildrenIfNecessary(); auto* axObject = backingObject->accessibilityHitTest(IntPoint(point)); id hit = nil; diff --git a/Source/WebCore/animation/CSSPropertyAnimation.cpp b/Source/WebCore/animation/CSSPropertyAnimation.cpp index f33d5e88f59c4..a3f3b9cb3b66e 100644 --- a/Source/WebCore/animation/CSSPropertyAnimation.cpp +++ b/Source/WebCore/animation/CSSPropertyAnimation.cpp @@ -3910,6 +3910,12 @@ CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap() new LengthVariantPropertyWrapper(CSSPropertyBorderTopRightRadius, &RenderStyle::borderTopRightRadius, &RenderStyle::setBorderTopRightRadius), new LengthVariantPropertyWrapper(CSSPropertyBorderBottomLeftRadius, &RenderStyle::borderBottomLeftRadius, &RenderStyle::setBorderBottomLeftRadius), new LengthVariantPropertyWrapper(CSSPropertyBorderBottomRightRadius, &RenderStyle::borderBottomRightRadius, &RenderStyle::setBorderBottomRightRadius), + + new DiscretePropertyWrapper(CSSPropertyCornerTopLeftShape, &RenderStyle::cornerTopLeftShape, &RenderStyle::setCornerTopLeftShape), + new DiscretePropertyWrapper(CSSPropertyCornerTopRightShape, &RenderStyle::cornerTopRightShape, &RenderStyle::setCornerTopRightShape), + new DiscretePropertyWrapper(CSSPropertyCornerBottomLeftShape, &RenderStyle::cornerBottomLeftShape, &RenderStyle::setCornerBottomLeftShape), + new DiscretePropertyWrapper(CSSPropertyCornerBottomRightShape, &RenderStyle::cornerBottomRightShape, &RenderStyle::setCornerBottomRightShape), + new VisibilityWrapper, new NonNormalizedDiscretePropertyWrapper(CSSPropertyDisplay, &RenderStyle::display, &RenderStyle::setDisplay), @@ -4160,6 +4166,7 @@ CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap() new DiscretePropertyWrapper(CSSPropertyViewTransitionName, &RenderStyle::viewTransitionName, &RenderStyle::setViewTransitionName), new DiscretePropertyWrapper(CSSPropertyFieldSizing, &RenderStyle::fieldSizing, &RenderStyle::setFieldSizing), new DiscretePropertyWrapper&>(CSSPropertyAnchorName, &RenderStyle::anchorNames, &RenderStyle::setAnchorNames), + new DiscretePropertyWrapper(CSSPropertyAnchorScope, &RenderStyle::anchorScope, &RenderStyle::setAnchorScope), new DiscretePropertyWrapper&>(CSSPropertyPositionAnchor, &RenderStyle::positionAnchor, &RenderStyle::setPositionAnchor), new DiscretePropertyWrapper>(CSSPropertyPositionArea, &RenderStyle::positionArea, &RenderStyle::setPositionArea), new DiscretePropertyWrapper(CSSPropertyPositionTryOrder, &RenderStyle::positionTryOrder, &RenderStyle::setPositionTryOrder), @@ -4197,6 +4204,7 @@ CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap() CSSPropertyBorderSpacing, CSSPropertyBlockStep, CSSPropertyColumns, + CSSPropertyCornerShape, CSSPropertyFlex, CSSPropertyFlexFlow, CSSPropertyGap, diff --git a/Source/WebCore/animation/WebAnimationTypes.h b/Source/WebCore/animation/WebAnimationTypes.h index 50d0cbaa21ce1..ec4ad79b0c5a7 100644 --- a/Source/WebCore/animation/WebAnimationTypes.h +++ b/Source/WebCore/animation/WebAnimationTypes.h @@ -110,7 +110,7 @@ constexpr OptionSet transformRelatedAcceleratedProper }; struct CSSPropertiesBitSet { - WTF::BitSet m_properties { }; + WTF::BitSet m_properties { }; }; using TimelineRangeValue = std::variant, RefPtr, String>; diff --git a/Source/WebCore/bindings/js/IDBBindingUtilities.cpp b/Source/WebCore/bindings/js/IDBBindingUtilities.cpp index dd3b1bb435afc..82288c56a5900 100644 --- a/Source/WebCore/bindings/js/IDBBindingUtilities.cpp +++ b/Source/WebCore/bindings/js/IDBBindingUtilities.cpp @@ -83,7 +83,7 @@ static bool get(JSGlobalObject& lexicalGlobalObject, JSValue object, const Strin } if (obj->inherits() && (keyPathElement == "size"_s || keyPathElement == "type"_s)) { if (keyPathElement == "size"_s) { - result = jsNumber(jsCast(obj)->wrapped().size()); + result = jsNumber(jsCast(obj)->protectedWrapped()->size()); return true; } if (keyPathElement == "type"_s) { @@ -97,11 +97,11 @@ static bool get(JSGlobalObject& lexicalGlobalObject, JSValue object, const Strin return true; } if (keyPathElement == "lastModified"_s) { - result = jsNumber(jsCast(obj)->wrapped().lastModified()); + result = jsNumber(jsCast(obj)->protectedWrapped()->lastModified()); return true; } if (keyPathElement == "lastModifiedDate"_s) { - result = jsDate(lexicalGlobalObject, WallTime::fromRawSeconds(Seconds::fromMilliseconds(jsCast(obj)->wrapped().lastModified()).value())); + result = jsDate(lexicalGlobalObject, WallTime::fromRawSeconds(Seconds::fromMilliseconds(jsCast(obj)->protectedWrapped()->lastModified()).value())); return true; } } @@ -405,10 +405,11 @@ static JSValue deserializeIDBValueToJSValue(JSGlobalObject& lexicalGlobalObject, auto serializedValue = SerializedScriptValue::createFromWireBytes(Vector(data)); - lexicalGlobalObject.vm().apiLock().lock(); + Ref apiLock = lexicalGlobalObject.vm().apiLock(); + apiLock->lock(); Vector> messagePorts; JSValue result = serializedValue->deserialize(lexicalGlobalObject, &globalObject, messagePorts, value.blobURLs(), value.blobFilePaths(), SerializationErrorMode::NonThrowing); - lexicalGlobalObject.vm().apiLock().unlock(); + apiLock->unlock(); return result; } @@ -529,13 +530,15 @@ std::optional deserializeIDBValueWithKeyInjection(JSGlobalObject& class IDBSerializationContext { public: IDBSerializationContext() - : m_thread(Thread::current()) +#if ASSERT_ENABLED + : m_threadUID(Thread::current().uid()) +#endif { } ~IDBSerializationContext() { - ASSERT(&m_thread == &Thread::current()); + ASSERT(m_threadUID == Thread::current().uid()); if (!m_vm) return; @@ -546,7 +549,7 @@ class IDBSerializationContext { JSC::JSGlobalObject& globalObject() { - ASSERT(&m_thread == &Thread::current()); + ASSERT(m_threadUID == Thread::current().uid()); initializeVM(); return *m_globalObject.get(); @@ -569,7 +572,9 @@ class IDBSerializationContext { RefPtr m_vm; JSC::Strong m_globalObject; - Thread& m_thread; +#if ASSERT_ENABLED + uint32_t m_threadUID; +#endif }; void callOnIDBSerializationThreadAndWait(Function&& function) diff --git a/Source/WebCore/bindings/js/InternalWritableStream.cpp b/Source/WebCore/bindings/js/InternalWritableStream.cpp index f8741c3280373..2edb75c47eb48 100644 --- a/Source/WebCore/bindings/js/InternalWritableStream.cpp +++ b/Source/WebCore/bindings/js/InternalWritableStream.cpp @@ -27,6 +27,7 @@ #include "InternalWritableStream.h" #include "Exception.h" +#include "JSDOMExceptionHandling.h" #include "WebCoreJSClientData.h" #include #include @@ -201,6 +202,31 @@ void InternalWritableStream::closeIfPossible() scope.clearException(); } +void InternalWritableStream::errorIfPossible(Exception&& exception) +{ + auto* globalObject = this->globalObject(); + if (!globalObject) + return; + + Ref vm = globalObject->vm(); + JSC::JSLockHolder lock(vm); + auto scope = DECLARE_CATCH_SCOPE(vm); + + auto* clientData = downcast(vm->clientData); + auto& privateName = clientData->builtinFunctions().writableStreamInternalsBuiltins().writableStreamErrorIfPossiblePrivateName(); + + auto reason = createDOMException(*globalObject, WTFMove(exception)); + + JSC::MarkedArgumentBuffer arguments; + arguments.append(guardedObject()); + arguments.append(reason); + ASSERT(!arguments.hasOverflowed()); + + invokeWritableStreamFunction(*globalObject, privateName, arguments); + if (UNLIKELY(scope.exception())) + scope.clearException(); +} + JSC::JSValue InternalWritableStream::getWriter(JSC::JSGlobalObject& globalObject) { auto* clientData = downcast(globalObject.vm().clientData); diff --git a/Source/WebCore/bindings/js/InternalWritableStream.h b/Source/WebCore/bindings/js/InternalWritableStream.h index 8185ef1c95d04..fe837bcaf61e9 100644 --- a/Source/WebCore/bindings/js/InternalWritableStream.h +++ b/Source/WebCore/bindings/js/InternalWritableStream.h @@ -45,6 +45,7 @@ class InternalWritableStream final : public DOMGuarded { JSC::JSValue getWriter(JSC::JSGlobalObject&); void closeIfPossible(); + void errorIfPossible(Exception&&); private: InternalWritableStream(JSDOMGlobalObject& globalObject, JSC::JSObject& jsObject) diff --git a/Source/WebCore/bindings/js/JSExecState.cpp b/Source/WebCore/bindings/js/JSExecState.cpp index eb63340367b03..0b70757622e69 100644 --- a/Source/WebCore/bindings/js/JSExecState.cpp +++ b/Source/WebCore/bindings/js/JSExecState.cpp @@ -58,4 +58,9 @@ ScriptExecutionContext* executionContext(JSC::JSGlobalObject* globalObject) return JSC::jsCast(globalObject)->scriptExecutionContext(); } +RefPtr protectedExecutionContext(JSC::JSGlobalObject* globalObject) +{ + return executionContext(globalObject); +} + } // namespace WebCore diff --git a/Source/WebCore/bindings/js/JSExecState.h b/Source/WebCore/bindings/js/JSExecState.h index 6843f58c4a32e..193a1ac37c5ea 100644 --- a/Source/WebCore/bindings/js/JSExecState.h +++ b/Source/WebCore/bindings/js/JSExecState.h @@ -219,5 +219,6 @@ JSC::JSValue functionCallHandlerFromAnyThread(JSC::JSGlobalObject*, JSC::JSValue JSC::JSValue evaluateHandlerFromAnyThread(JSC::JSGlobalObject*, const JSC::SourceCode&, JSC::JSValue thisValue, NakedPtr& returnedException); ScriptExecutionContext* executionContext(JSC::JSGlobalObject*); +RefPtr protectedExecutionContext(JSC::JSGlobalObject*); } // namespace WebCore diff --git a/Source/WebCore/bindings/js/SerializedScriptValue.cpp b/Source/WebCore/bindings/js/SerializedScriptValue.cpp index 9fd8ef7991945..51e8980876142 100644 --- a/Source/WebCore/bindings/js/SerializedScriptValue.cpp +++ b/Source/WebCore/bindings/js/SerializedScriptValue.cpp @@ -967,7 +967,7 @@ class CloneBase { static std::optional> serializeAndWrapCryptoKey(JSGlobalObject* lexicalGlobalObject, WebCore::CryptoKeyData&& key) { - auto context = executionContext(lexicalGlobalObject); + RefPtr context = executionContext(lexicalGlobalObject); if (!context) return std::nullopt; @@ -976,7 +976,7 @@ static std::optional> serializeAndWrapCryptoKey(JSGlobalObject* static std::optional> unwrapCryptoKey(JSGlobalObject* lexicalGlobalObject, const Vector& wrappedKey) { - auto context = executionContext(lexicalGlobalObject); + RefPtr context = executionContext(lexicalGlobalObject); if (!context) return std::nullopt; @@ -1566,7 +1566,7 @@ class CloneSerializer : public CloneBase { else write(DOMPointReadOnlyTag); - dumpDOMPoint(jsCast(obj)->wrapped()); + dumpDOMPoint(jsCast(obj)->protectedWrapped()); } void dumpDOMRect(JSObject* obj) @@ -1576,11 +1576,11 @@ class CloneSerializer : public CloneBase { else write(DOMRectReadOnlyTag); - auto& rect = jsCast(obj)->wrapped(); - write(rect.x()); - write(rect.y()); - write(rect.width()); - write(rect.height()); + Ref rect = jsCast(obj)->wrapped(); + write(rect->x()); + write(rect->y()); + write(rect->width()); + write(rect->height()); } void dumpDOMMatrix(JSObject* obj) @@ -1590,33 +1590,33 @@ class CloneSerializer : public CloneBase { else write(DOMMatrixReadOnlyTag); - auto& matrix = jsCast(obj)->wrapped(); - bool is2D = matrix.is2D(); + Ref matrix = jsCast(obj)->wrapped(); + bool is2D = matrix->is2D(); write(is2D); if (is2D) { - write(matrix.m11()); - write(matrix.m12()); - write(matrix.m21()); - write(matrix.m22()); - write(matrix.m41()); - write(matrix.m42()); + write(matrix->m11()); + write(matrix->m12()); + write(matrix->m21()); + write(matrix->m22()); + write(matrix->m41()); + write(matrix->m42()); } else { - write(matrix.m11()); - write(matrix.m12()); - write(matrix.m13()); - write(matrix.m14()); - write(matrix.m21()); - write(matrix.m22()); - write(matrix.m23()); - write(matrix.m24()); - write(matrix.m31()); - write(matrix.m32()); - write(matrix.m33()); - write(matrix.m34()); - write(matrix.m41()); - write(matrix.m42()); - write(matrix.m43()); - write(matrix.m44()); + write(matrix->m11()); + write(matrix->m12()); + write(matrix->m13()); + write(matrix->m14()); + write(matrix->m21()); + write(matrix->m22()); + write(matrix->m23()); + write(matrix->m24()); + write(matrix->m31()); + write(matrix->m32()); + write(matrix->m33()); + write(matrix->m34()); + write(matrix->m41()); + write(matrix->m42()); + write(matrix->m43()); + write(matrix->m44()); } } @@ -1624,32 +1624,32 @@ class CloneSerializer : public CloneBase { { write(DOMQuadTag); - auto& quad = jsCast(obj)->wrapped(); - dumpDOMPoint(quad.p1()); - dumpDOMPoint(quad.p2()); - dumpDOMPoint(quad.p3()); - dumpDOMPoint(quad.p4()); + Ref quad = jsCast(obj)->wrapped(); + dumpDOMPoint(quad->p1()); + dumpDOMPoint(quad->p2()); + dumpDOMPoint(quad->p3()); + dumpDOMPoint(quad->p4()); } void dumpImageBitmap(JSObject* obj, SerializationReturnCode& code) { - auto& imageBitmap = jsCast(obj)->wrapped(); + Ref imageBitmap = jsCast(obj)->wrapped(); auto index = m_transferredImageBitmaps.find(obj); if (index != m_transferredImageBitmaps.end()) { #if USE(SKIA) - imageBitmap.prepareForCrossThreadTransfer(); + imageBitmap->prepareForCrossThreadTransfer(); #endif write(ImageBitmapTransferTag); write(index->value); return; } - if (!imageBitmap.originClean()) { + if (!imageBitmap->originClean()) { code = SerializationReturnCode::DataCloneError; return; } - auto* buffer = imageBitmap.buffer(); + RefPtr buffer = imageBitmap->buffer(); if (!buffer) { code = SerializationReturnCode::ValidationError; return; @@ -1664,7 +1664,7 @@ class CloneSerializer : public CloneBase { return; } - auto arrayBuffer = pixelBuffer->data().possiblySharedBuffer(); + auto arrayBuffer = pixelBuffer->protectedData()->possiblySharedBuffer(); if (!arrayBuffer) { code = SerializationReturnCode::ValidationError; return; @@ -1673,9 +1673,9 @@ class CloneSerializer : public CloneBase { // Origin must be clean to transfer, but the check was not always in place. Ensure tainted ImageBitmaps are not // loaded anymore. flags.add(ImageBitmapSerializationFlags::OriginClean); - if (imageBitmap.premultiplyAlpha()) + if (imageBitmap->premultiplyAlpha()) flags.add(ImageBitmapSerializationFlags::PremultiplyAlpha); - if (imageBitmap.forciblyPremultiplyAlpha()) + if (imageBitmap->forciblyPremultiplyAlpha()) flags.add(ImageBitmapSerializationFlags::ForciblyPremultiplyAlpha); write(ImageBitmapTag); write(static_cast(flags.toRaw())); @@ -1728,12 +1728,12 @@ class CloneSerializer : public CloneBase { #if ENABLE(WEB_CODECS) void dumpWebCodecsEncodedVideoChunk(JSObject* obj) { - auto& videoChunk = jsCast(obj)->wrapped(); + Ref videoChunk = jsCast(obj)->wrapped(); - auto index = m_serializedVideoChunks.find(&videoChunk.storage()); + auto index = m_serializedVideoChunks.find(&videoChunk->storage()); if (index == notFound) { index = m_serializedVideoChunks.size(); - m_serializedVideoChunks.append(&videoChunk.storage()); + m_serializedVideoChunks.append(&videoChunk->storage()); } write(WebCodecsEncodedVideoChunkTag); @@ -1758,12 +1758,12 @@ class CloneSerializer : public CloneBase { void dumpWebCodecsEncodedAudioChunk(JSObject* obj) { - auto& audioChunk = jsCast(obj)->wrapped(); + Ref audioChunk = jsCast(obj)->wrapped(); - auto index = m_serializedAudioChunks.find(&audioChunk.storage()); + auto index = m_serializedAudioChunks.find(&audioChunk->storage()); if (index == notFound) { index = m_serializedAudioChunks.size(); - m_serializedAudioChunks.append(&audioChunk.storage()); + m_serializedAudioChunks.append(&audioChunk->storage()); } write(WebCodecsEncodedAudioChunkTag); @@ -1817,7 +1817,7 @@ class CloneSerializer : public CloneBase { void dumpDOMException(JSObject* obj, SerializationReturnCode& code) { - if (auto* exception = JSDOMException::toWrapped(m_lexicalGlobalObject->vm(), obj)) { + if (RefPtr exception = JSDOMException::toWrapped(m_lexicalGlobalObject->vm(), obj)) { write(DOMExceptionTag); write(exception->message()); write(exception->name()); @@ -1893,19 +1893,19 @@ class CloneSerializer : public CloneBase { dumpBigIntData(bigIntValue); return true; } - if (auto* file = JSFile::toWrapped(vm, obj)) { + if (RefPtr file = JSFile::toWrapped(vm, obj)) { write(FileTag); write(*file); return true; } - if (auto* list = JSFileList::toWrapped(vm, obj)) { + if (RefPtr list = JSFileList::toWrapped(vm, obj)) { write(FileListTag); write(list->length()); for (auto& file : list->files()) write(file.get()); return true; } - if (auto* blob = JSBlob::toWrapped(vm, obj)) { + if (RefPtr blob = JSBlob::toWrapped(vm, obj)) { write(BlobTag); m_blobHandles.append(blob->handle().isolatedCopy()); write(blob->url().string()); @@ -1917,7 +1917,7 @@ class CloneSerializer : public CloneBase { write(memoryCost); return true; } - if (auto* data = JSImageData::toWrapped(vm, obj)) { + if (RefPtr data = JSImageData::toWrapped(vm, obj)) { write(ImageDataTag); auto addResult = m_imageDataPool.add(*data, m_imageDataPool.size()); if (!addResult.isNewEntry) { @@ -1966,7 +1966,7 @@ class CloneSerializer : public CloneBase { } else if (m_context == SerializationContext::CloneAcrossWorlds) { write(InMemoryMessagePortTag); write(static_cast(m_inMemoryMessagePorts.size())); - m_inMemoryMessagePorts.append(jsCast(obj)->wrapped()); + m_inMemoryMessagePorts.append(jsCast(obj)->protectedWrapped()); return true; } // MessagePort object could not be found in transferred message ports @@ -2029,7 +2029,7 @@ class CloneSerializer : public CloneBase { addToObjectPool(obj); return success; } - if (auto* key = JSCryptoKey::toWrapped(vm, obj)) { + if (RefPtr key = JSCryptoKey::toWrapped(vm, obj)) { write(CryptoKeyTag); auto wrappedKey = serializeAndWrapCryptoKey(m_lexicalGlobalObject, key->data()); if (!wrappedKey) { @@ -2041,11 +2041,11 @@ class CloneSerializer : public CloneBase { return true; } #if ENABLE(WEB_RTC) - if (auto* rtcCertificate = JSRTCCertificate::toWrapped(vm, obj)) { + if (RefPtr rtcCertificate = JSRTCCertificate::toWrapped(vm, obj)) { write(RTCCertificateTag); write(rtcCertificate->expires()); write(rtcCertificate->pemCertificate()); - write(rtcCertificate->origin().toString()); + write(rtcCertificate->protectedOrigin()->toString()); write(rtcCertificate->pemPrivateKey()); write(static_cast(rtcCertificate->getFingerprints().size())); for (const auto& fingerprint : rtcCertificate->getFingerprints()) { @@ -3645,7 +3645,7 @@ class CloneDeserializer : public CloneBase { if (!m_canCreateDOMObject) return true; - file = File::deserialize(executionContext(m_lexicalGlobalObject), filePath, URL { url->string() }, type->string(), name->string(), optionalLastModified); + file = File::deserialize(protectedExecutionContext(m_lexicalGlobalObject).get(), filePath, URL { url->string() }, type->string(), name->string(), optionalLastModified); return true; } @@ -4450,13 +4450,13 @@ class CloneDeserializer : public CloneBase { } if (!m_imageBitmaps[index] && m_detachedImageBitmaps.at(index)) - m_imageBitmaps[index] = ImageBitmap::create(*executionContext(m_lexicalGlobalObject), WTFMove(*m_detachedImageBitmaps.at(index))); + m_imageBitmaps[index] = ImageBitmap::create(*protectedExecutionContext(m_lexicalGlobalObject).get(), WTFMove(*m_detachedImageBitmaps.at(index))); - auto bitmap = m_imageBitmaps[index].get(); + RefPtr bitmap = m_imageBitmaps[index]; #if USE(SKIA) bitmap->finalizeCrossThreadTransfer(); #endif - return getJSValue(bitmap); + return getJSValue(bitmap.get()); } #if ENABLE(OFFSCREEN_CANVAS_IN_WORKERS) @@ -4471,10 +4471,10 @@ class CloneDeserializer : public CloneBase { } if (!m_offscreenCanvases[index]) - m_offscreenCanvases[index] = OffscreenCanvas::create(*executionContext(m_lexicalGlobalObject), WTFMove(m_detachedOffscreenCanvases.at(index))); + m_offscreenCanvases[index] = OffscreenCanvas::create(*protectedExecutionContext(m_lexicalGlobalObject), WTFMove(m_detachedOffscreenCanvases.at(index))); - auto offscreenCanvas = m_offscreenCanvases[index].get(); - return getJSValue(offscreenCanvas); + RefPtr offscreenCanvas = m_offscreenCanvases[index]; + return getJSValue(offscreenCanvas.get()); } JSValue readInMemoryOffscreenCanvas() @@ -4556,7 +4556,7 @@ class CloneDeserializer : public CloneBase { if (!m_rtcDataChannels[index]) { auto detachedChannel = WTFMove(m_detachedRTCDataChannels.at(index)); - m_rtcDataChannels[index] = RTCDataChannel::create(*executionContext(m_lexicalGlobalObject), detachedChannel->identifier, WTFMove(detachedChannel->label), WTFMove(detachedChannel->options), detachedChannel->state); + m_rtcDataChannels[index] = RTCDataChannel::create(*protectedExecutionContext(m_lexicalGlobalObject), detachedChannel->identifier, WTFMove(detachedChannel->label), WTFMove(detachedChannel->options), detachedChannel->state); } return getJSValue(m_rtcDataChannels[index].get()); @@ -4590,7 +4590,7 @@ class CloneDeserializer : public CloneBase { } if (!m_videoFrames[index]) - m_videoFrames[index] = WebCodecsVideoFrame::create(*executionContext(m_lexicalGlobalObject), WTFMove(m_serializedVideoFrames.at(index))); + m_videoFrames[index] = WebCodecsVideoFrame::create(*protectedExecutionContext(m_lexicalGlobalObject), WTFMove(m_serializedVideoFrames.at(index))); return getJSValue(m_videoFrames[index].get()); } @@ -4620,7 +4620,7 @@ class CloneDeserializer : public CloneBase { } if (!m_audioData[index]) - m_audioData[index] = WebCodecsAudioData::create(*executionContext(m_lexicalGlobalObject), WTFMove(m_serializedAudioData.at(index))); + m_audioData[index] = WebCodecsAudioData::create(*protectedExecutionContext(m_lexicalGlobalObject), WTFMove(m_serializedAudioData.at(index))); return getJSValue(m_audioData[index].get()); } @@ -4637,7 +4637,7 @@ class CloneDeserializer : public CloneBase { } if (!m_mediaStreamTracks[index]) - m_mediaStreamTracks[index] = MediaStreamTrack::create(*executionContext(m_lexicalGlobalObject), makeUniqueRefFromNonNullUniquePtr(std::exchange(m_serializedMediaStreamTracks.at(index), { }))); + m_mediaStreamTracks[index] = MediaStreamTrack::create(*protectedExecutionContext(m_lexicalGlobalObject), makeUniqueRefFromNonNullUniquePtr(std::exchange(m_serializedMediaStreamTracks.at(index), { }))); return getJSValue(m_mediaStreamTracks[index].get()); } @@ -4684,7 +4684,7 @@ class CloneDeserializer : public CloneBase { auto imageDataSize = logicalSize; imageDataSize.scale(resolutionScale); - auto buffer = ImageBitmap::createImageBuffer(*executionContext(m_lexicalGlobalObject), logicalSize, RenderingMode::Unaccelerated, colorSpace, resolutionScale); + auto buffer = ImageBitmap::createImageBuffer(*protectedExecutionContext(m_lexicalGlobalObject), logicalSize, RenderingMode::Unaccelerated, colorSpace, resolutionScale); if (!buffer) { SERIALIZE_TRACE("FAIL deserialize"); fail(); @@ -4987,7 +4987,7 @@ class CloneDeserializer : public CloneBase { return JSValue(); if (!m_canCreateDOMObject) return jsNull(); - return getJSValue(Blob::deserialize(executionContext(m_lexicalGlobalObject), URL { url->string() }, type->string(), size, memoryCost, blobFilePathForBlobURL(url->string())).get()); + return getJSValue(Blob::deserialize(protectedExecutionContext(m_lexicalGlobalObject).get(), URL { url->string() }, type->string(), size, memoryCost, blobFilePathForBlobURL(url->string())).get()); } case StringTag: { CachedStringRef cachedString; @@ -6080,14 +6080,14 @@ ExceptionOr> SerializedScriptValue::create(JSGlobalOb arrayBuffers.append(WTFMove(arrayBuffer)); continue; } - if (auto port = JSMessagePort::toWrapped(vm, transferable.get())) { + if (RefPtr port = JSMessagePort::toWrapped(vm, transferable.get())) { if (port->isDetached()) return Exception { ExceptionCode::DataCloneError, "MessagePort is detached"_s }; - messagePorts.append(*port); + messagePorts.append(port.releaseNonNull()); continue; } - if (auto imageBitmap = JSImageBitmap::toWrapped(vm, transferable.get())) { + if (RefPtr imageBitmap = JSImageBitmap::toWrapped(vm, transferable.get())) { if (imageBitmap->isDetached()) return Exception { ExceptionCode::DataCloneError }; if (!imageBitmap->originClean()) @@ -6098,48 +6098,48 @@ ExceptionOr> SerializedScriptValue::create(JSGlobalOb } #if ENABLE(OFFSCREEN_CANVAS_IN_WORKERS) - if (auto offscreenCanvas = JSOffscreenCanvas::toWrapped(vm, transferable.get())) { + if (RefPtr offscreenCanvas = JSOffscreenCanvas::toWrapped(vm, transferable.get())) { offscreenCanvases.append(WTFMove(offscreenCanvas)); continue; } #endif #if ENABLE(WEB_RTC) - if (auto channel = JSRTCDataChannel::toWrapped(vm, transferable.get())) { - dataChannels.append(*channel); + if (RefPtr channel = JSRTCDataChannel::toWrapped(vm, transferable.get())) { + dataChannels.append(channel.releaseNonNull()); continue; } #endif #if ENABLE(MEDIA_SOURCE_IN_WORKERS) - if (auto handle = JSMediaSourceHandle::toWrapped(vm, transferable.get())) { + if (RefPtr handle = JSMediaSourceHandle::toWrapped(vm, transferable.get())) { if (handle->isDetached()) return Exception { ExceptionCode::DataCloneError }; - mediaSourceHandles.append(*handle); + mediaSourceHandles.append(handle.releaseNonNull()); continue; } #endif #if ENABLE(WEB_CODECS) - if (auto videoFrame = JSWebCodecsVideoFrame::toWrapped(vm, transferable.get())) { + if (RefPtr videoFrame = JSWebCodecsVideoFrame::toWrapped(vm, transferable.get())) { if (videoFrame->isDetached()) return Exception { ExceptionCode::DataCloneError }; - transferredVideoFrames.append(*videoFrame); + transferredVideoFrames.append(videoFrame.releaseNonNull()); continue; } - if (auto audioData = JSWebCodecsAudioData::toWrapped(vm, transferable.get())) { + if (RefPtr audioData = JSWebCodecsAudioData::toWrapped(vm, transferable.get())) { if (audioData->isDetached()) return Exception { ExceptionCode::DataCloneError }; - transferredAudioData.append(*audioData); + transferredAudioData.append(audioData.releaseNonNull()); continue; } #endif #if ENABLE(MEDIA_STREAM) - if (auto track = JSMediaStreamTrack::toWrapped(vm, transferable.get())) { + if (RefPtr track = JSMediaStreamTrack::toWrapped(vm, transferable.get())) { if (track->isDetached()) return Exception { ExceptionCode::DataCloneError }; - transferredMediaStreamTracks.append(*track); + transferredMediaStreamTracks.append(track.releaseNonNull()); continue; } #endif @@ -6438,8 +6438,9 @@ IDBValue SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously(bool i BinarySemaphore semaphore; IDBValue value; - callOnMainThread([this, &semaphore, &value, isEphemeral] { - writeBlobsToDiskForIndexedDB(isEphemeral, [&semaphore, &value](IDBValue&& result) { + Ref protectedThis { *this }; + callOnMainThread([&protectedThis, &semaphore, &value, isEphemeral] { + protectedThis->writeBlobsToDiskForIndexedDB(isEphemeral, [&semaphore, &value](IDBValue&& result) { ASSERT(isMainThread()); value.setAsIsolatedCopy(result); diff --git a/Source/WebCore/bridge/objc/objc_runtime.h b/Source/WebCore/bridge/objc/objc_runtime.h index 3ecc988401e3d..105d7c2cc4864 100644 --- a/Source/WebCore/bridge/objc/objc_runtime.h +++ b/Source/WebCore/bridge/objc/objc_runtime.h @@ -81,8 +81,10 @@ class ObjcArray : public Array { virtual bool setValueAt(JSGlobalObject*, unsigned int index, JSValue aValue) const; virtual JSValue valueAt(JSGlobalObject*, unsigned int index) const; virtual unsigned int getLength() const; - + +#ifdef __OBJC__ ObjectStructPtr getObjcArray() const { return _array.get(); } +#endif private: RetainPtr _array; diff --git a/Source/WebCore/css/CSSPrimitiveValueMappings.h b/Source/WebCore/css/CSSPrimitiveValueMappings.h index 513f724fc3576..c8bf13708daf0 100644 --- a/Source/WebCore/css/CSSPrimitiveValueMappings.h +++ b/Source/WebCore/css/CSSPrimitiveValueMappings.h @@ -2193,6 +2193,13 @@ DEFINE_TO_FROM_CSS_VALUE_ID_FUNCTIONS #undef TYPE #undef FOR_EACH + +#define TYPE CornerShape +#define FOR_EACH(CASE) CASE(Round) CASE(Scoop) CASE(Bevel) CASE(Notch) CASE(Straight) +DEFINE_TO_FROM_CSS_VALUE_ID_FUNCTIONS +#undef TYPE +#undef FOR_EACH + #define TYPE DominantBaseline #define FOR_EACH(CASE) CASE(Auto) CASE(UseScript) CASE(NoChange) CASE(ResetSize) CASE(Central) \ CASE(Middle) CASE(TextBeforeEdge) CASE(TextAfterEdge) CASE(Ideographic) CASE(Alphabetic) \ diff --git a/Source/WebCore/css/CSSProperties.json b/Source/WebCore/css/CSSProperties.json index 94a576bc961f7..4c216d9da6f43 100644 --- a/Source/WebCore/css/CSSProperties.json +++ b/Source/WebCore/css/CSSProperties.json @@ -2223,6 +2223,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -3821,6 +3825,169 @@ "url": "https://www.w3.org/TR/css-content-3/#content-property" } }, + "corner-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "longhands": [ + "corner-top-left-shape", + "corner-top-right-shape", + "corner-bottom-right-shape", + "corner-bottom-left-shape" + ], + "disables-native-appearance": true, + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, + "corner-top-left-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "disables-native-appearance": true, + "logical-property-group": { + "name": "corner-shape", + "resolver": "top-left" + }, + "parser-grammar": "", + "render-style-initial": "initialCornerShape", + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, + "corner-top-right-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "disables-native-appearance": true, + "logical-property-group": { + "name": "corner-shape", + "resolver": "top-right" + }, + "parser-grammar": "", + "render-style-initial": "initialCornerShape", + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, + "corner-bottom-left-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "disables-native-appearance": true, + "logical-property-group": { + "name": "corner-shape", + "resolver": "bottom-left" + }, + "parser-grammar": "", + "render-style-initial": "initialCornerShape", + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, + "corner-bottom-right-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "disables-native-appearance": true, + "logical-property-group": { + "name": "corner-shape", + "resolver": "bottom-right" + }, + "parser-grammar": "", + "render-style-initial": "initialCornerShape", + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, + "corner-start-start-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "skip-style-builder": true, + "disables-native-appearance": true, + "logical-property-group": { + "name": "corner-shape", + "resolver": "start-start" + }, + "parser-grammar": "", + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, + "corner-start-end-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "skip-style-builder": true, + "disables-native-appearance": true, + "logical-property-group": { + "name": "corner-shape", + "resolver": "start-end" + }, + "parser-grammar": "", + "parser-exported": true, + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, + "corner-end-start-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "skip-style-builder": true, + "disables-native-appearance": true, + "logical-property-group": { + "name": "corner-shape", + "resolver": "end-start" + }, + "parser-grammar": "", + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, + "corner-end-end-shape": { + "animation-type": "discrete", + "initial": "round", + "codegen-properties": { + "skip-style-builder": true, + "disables-native-appearance": true, + "logical-property-group": { + "name": "corner-shape", + "resolver": "end-end" + }, + "parser-grammar": "", + "settings-flag": "cssCornerShapeEnabled" + }, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, "counter-increment": { "animation-type": "by computed value", "initial": "none", @@ -4241,6 +4408,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -4352,6 +4523,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -5531,6 +5706,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -5584,6 +5763,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -5635,6 +5818,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -5706,6 +5893,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -5757,6 +5948,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -5810,6 +6005,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -5861,6 +6060,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -5914,6 +6117,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -7761,6 +7968,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -8946,6 +9157,10 @@ "value": "contain", "status": "unimplemented" }, + { + "value": "intrinsic", + "status": "non-standard" + }, { "value": "min-intrinsic", "status": "non-standard" @@ -11328,7 +11543,15 @@ "animation-type": "discrete", "initial": "none", "values": [ - "none" + "none", + { + "value": "auto", + "status": "non-standard" + }, + { + "value": "match-element", + "status": "non-standard" + } ], "codegen-properties": { "style-builder-converter": "ViewTransitionName", @@ -11358,6 +11581,19 @@ "url": "https://drafts.csswg.org/css-anchor-position-1/#name" } }, + "anchor-scope": { + "animation-type": "discrete", + "initial": "none", + "codegen-properties": { + "style-builder-converter": "NameScope", + "parser-grammar": "none | all | #", + "settings-flag": "cssAnchorPositioningEnabled" + }, + "specification": { + "category": "css-anchor-position", + "url": "https://drafts.csswg.org/css-anchor-position-1/#anchor-scope" + } + }, "position-anchor": { "animation-type": "discrete", "initial": "auto", @@ -12145,6 +12381,11 @@ "longname": "CSS Backgrounds and Borders Module", "url": "https://www.w3.org/TR/css3-background/" }, + "css-borders": { + "shortname": "CSS Borders and Box Decorations", + "longname": "CSS Borders and Box Decorations Module", + "url": "https://drafts.csswg.org/css-borders-4/" + }, "css-box-4": { "shortname": "CSS Box 4", "longname": "CSS Box Model Module Level 4", @@ -12916,6 +13157,14 @@ "url": "https://www.w3.org/TR/css-animations-1/#typedef-single-animation-play-state" } }, + "": { + "grammar": "round | scoop | bevel | notch | straight", + "exported": true, + "specification": { + "category": "css-borders", + "url": "https://drafts.csswg.org/css-borders-4/#corner-shaping" + } + }, "": { "grammar": "normal | allow-discrete", "exported": true, diff --git a/Source/WebCore/css/CSSProperty.h b/Source/WebCore/css/CSSProperty.h index 5419fdd339c15..14ba5550beecf 100644 --- a/Source/WebCore/css/CSSProperty.h +++ b/Source/WebCore/css/CSSProperty.h @@ -94,6 +94,7 @@ class CSSProperty { static bool isBorderStyleProperty(CSSPropertyID); static bool isBorderWidthProperty(CSSPropertyID); static bool isContainIntrinsicSizeProperty(CSSPropertyID); + static bool isCornerShapeProperty(CSSPropertyID); static bool isInsetProperty(CSSPropertyID); static bool isMarginProperty(CSSPropertyID); static bool isMaxSizeProperty(CSSPropertyID); @@ -117,8 +118,8 @@ class CSSProperty { return colorProperties.get(propertyId); } - static const WEBCORE_EXPORT WTF::BitSet colorProperties; - static const WEBCORE_EXPORT WTF::BitSet physicalProperties; + static const WEBCORE_EXPORT WTF::BitSet colorProperties; + static const WEBCORE_EXPORT WTF::BitSet physicalProperties; bool operator==(const CSSProperty& other) const { diff --git a/Source/WebCore/css/CSSValueKeywords.in b/Source/WebCore/css/CSSValueKeywords.in index 6e2bb0d0374b0..437d0e0a22105 100644 --- a/Source/WebCore/css/CSSValueKeywords.in +++ b/Source/WebCore/css/CSSValueKeywords.in @@ -948,6 +948,15 @@ padding-box // text -webkit-text +// +// Corner-shape +// +// round +scoop +// bevel +notch +straight + // // CSS_PROP_MASK_CLIP // diff --git a/Source/WebCore/css/ComputedStyleExtractor.cpp b/Source/WebCore/css/ComputedStyleExtractor.cpp index c28268a2bca4b..1cde5386e54d5 100644 --- a/Source/WebCore/css/ComputedStyleExtractor.cpp +++ b/Source/WebCore/css/ComputedStyleExtractor.cpp @@ -1076,6 +1076,13 @@ static Ref computedRotate(RenderObject* renderer, const RenderStyle& s CSSPrimitiveValue::create(rotate->y()), CSSPrimitiveValue::create(rotate->z()), WTFMove(angle)); } +static Ref valueForScopedName(const Style::ScopedName& scopedName) +{ + if (scopedName.isIdentifier) + return CSSPrimitiveValue::createCustomIdent(scopedName.name); + return CSSPrimitiveValue::create(scopedName.name); +} + static Ref valueForBoxShadow(const ShadowData* shadow, const RenderStyle& style) { if (!shadow) @@ -1113,10 +1120,12 @@ static Ref valueForPositionTryFallbacks(const Vector valueForAnimationPlayState(AnimationPlayState play RELEASE_ASSERT_NOT_REACHED(); } -static Ref valueForScopedName(const Style::ScopedName& scopedName) -{ - if (scopedName.isIdentifier) - return CSSPrimitiveValue::createCustomIdent(scopedName.name); - return CSSPrimitiveValue::create(scopedName.name); -} - static Ref valueForAnimationTimeline(const RenderStyle& style, const Animation::Timeline& timeline) { auto valueForAnonymousScrollTimeline = [](const Animation::AnonymousScrollTimeline& anonymousScrollTimeline) { @@ -3298,17 +3300,30 @@ static Ref valueForPositionArea(const std::optional& pos return CSSPropertyParserHelpers::valueForPositionArea(blockOrXAxisKeyword, inlineOrYAxisKeyword).releaseNonNull(); } -static Ref valueForNameScopeNames(const Vector& names) +static Ref valueForNameScope(const NameScope& scope) { - if (names.isEmpty()) + switch (scope.type) { + case NameScope::Type::None: return CSSPrimitiveValue::create(CSSValueNone); - CSSValueListBuilder list; - for (auto& name : names) { - ASSERT(!name.isNull()); - list.append(CSSPrimitiveValue::createCustomIdent(name)); + case NameScope::Type::All: + return CSSPrimitiveValue::create(CSSValueAll); + + case NameScope::Type::Ident: + if (scope.names.isEmpty()) + return CSSPrimitiveValue::create(CSSValueNone); + + CSSValueListBuilder list; + for (auto& name : scope.names) { + ASSERT(!name.isNull()); + list.append(CSSPrimitiveValue::createCustomIdent(name)); + } + + return CSSValueList::createCommaSeparated(WTFMove(list)); } - return CSSValueList::createCommaSeparated(WTFMove(list)); + + ASSERT_NOT_REACHED(); + return CSSPrimitiveValue::create(CSSValueNone); } static Ref scrollTimelineShorthandValue(const Vector>& timelines) @@ -4836,6 +4851,16 @@ RefPtr ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty return style.hasAutoColumnCount() ? CSSPrimitiveValue::create(CSSValueAuto) : CSSPrimitiveValue::create(style.columnCount()); return getCSSPropertyValuesForShorthandProperties(columnsShorthand()); } + case CSSPropertyCornerShape: + return getCSSPropertyValuesFor4SidesShorthand(cornerShapeShorthand()); + case CSSPropertyCornerTopLeftShape: + return createConvertingToCSSValueID(style.cornerTopLeftShape()); + case CSSPropertyCornerTopRightShape: + return createConvertingToCSSValueID(style.cornerTopRightShape()); + case CSSPropertyCornerBottomRightShape: + return createConvertingToCSSValueID(style.cornerBottomRightShape()); + case CSSPropertyCornerBottomLeftShape: + return createConvertingToCSSValueID(style.cornerBottomLeftShape()); case CSSPropertyInset: return getCSSPropertyValuesFor4SidesShorthand(insetShorthand()); case CSSPropertyInsetBlock: @@ -4979,6 +5004,8 @@ RefPtr ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty case CSSPropertyAnchorName: return valueForAnchorName(style.anchorNames()); + case CSSPropertyAnchorScope: + return valueForNameScope(style.anchorScope()); case CSSPropertyPositionAnchor: if (!style.positionAnchor()) return CSSPrimitiveValue::create(CSSValueAuto); @@ -5004,16 +5031,7 @@ RefPtr ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty return CSSPrimitiveValue::create(CSSValueNormal); } case CSSPropertyTimelineScope: - switch (style.timelineScope().type) { - case NameScope::Type::None: - return CSSPrimitiveValue::create(CSSValueNone); - case NameScope::Type::All: - return CSSPrimitiveValue::create(CSSValueAll); - case NameScope::Type::Ident: - return valueForNameScopeNames(style.timelineScope().names); - } - ASSERT_NOT_REACHED(); - return CSSPrimitiveValue::create(CSSValueNone); + return valueForNameScope(style.timelineScope()); // Unimplemented CSS 3 properties (including CSS3 shorthand properties). case CSSPropertyAll: @@ -5036,6 +5054,10 @@ RefPtr ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty case CSSPropertyBorderInlineStartWidth: case CSSPropertyBorderStartEndRadius: case CSSPropertyBorderStartStartRadius: + case CSSPropertyCornerEndEndShape: + case CSSPropertyCornerEndStartShape: + case CSSPropertyCornerStartEndShape: + case CSSPropertyCornerStartStartShape: case CSSPropertyInsetBlockEnd: case CSSPropertyInsetBlockStart: case CSSPropertyInsetInlineEnd: diff --git a/Source/WebCore/css/ShorthandSerializer.cpp b/Source/WebCore/css/ShorthandSerializer.cpp index 6d80b3a8cff7e..1aa1283f5306a 100644 --- a/Source/WebCore/css/ShorthandSerializer.cpp +++ b/Source/WebCore/css/ShorthandSerializer.cpp @@ -360,6 +360,7 @@ String ShorthandSerializer::serialize() case CSSPropertyBorderColor: case CSSPropertyBorderStyle: case CSSPropertyBorderWidth: + case CSSPropertyCornerShape: case CSSPropertyInset: case CSSPropertyMargin: case CSSPropertyPadding: diff --git a/Source/WebCore/css/parser/CSSPropertyParser.cpp b/Source/WebCore/css/parser/CSSPropertyParser.cpp index 043d2348f3147..2518ee9904a73 100644 --- a/Source/WebCore/css/parser/CSSPropertyParser.cpp +++ b/Source/WebCore/css/parser/CSSPropertyParser.cpp @@ -3156,6 +3156,8 @@ bool CSSPropertyParser::parseShorthand(CSSPropertyID property, bool important) addProperty(longhand, CSSPropertyBorder, nullptr, important); return true; } + case CSSPropertyCornerShape: + return consume4ValueShorthand(cornerShapeShorthand(), important); case CSSPropertyBorderImage: case CSSPropertyWebkitBorderImage: case CSSPropertyWebkitMaskBoxImage: diff --git a/Source/WebCore/css/parser/CSSPropertyParserConsumer+PositionTry.cpp b/Source/WebCore/css/parser/CSSPropertyParserConsumer+PositionTry.cpp index 3c44efc0f63fb..ca2e37892b34f 100644 --- a/Source/WebCore/css/parser/CSSPropertyParserConsumer+PositionTry.cpp +++ b/Source/WebCore/css/parser/CSSPropertyParserConsumer+PositionTry.cpp @@ -36,19 +36,32 @@ namespace CSSPropertyParserHelpers { RefPtr consumePositionTryFallbacks(CSSParserTokenRange& range, const CSSParserContext&) { + // none | [ [ || ] | <'position-area'> ]# + // FIXME: Implement <'position-area'> if (auto result = consumeIdent(range)) return result; auto consume = [](CSSParserTokenRange& range) -> RefPtr { + // [ || ] + auto tryRuleIdent = consumeDashedIdentRaw(range); + Vector idents; while (auto ident = consumeIdentRaw(range)) { if (idents.contains(*ident)) return nullptr; idents.append(*ident); } + CSSValueListBuilder list; for (auto ident : idents) list.append(CSSPrimitiveValue::create(ident)); + + if (tryRuleIdent.isNull()) + tryRuleIdent = consumeDashedIdentRaw(range); + + if (!tryRuleIdent.isNull()) + list.insert(0, CSSPrimitiveValue::createCustomIdent(tryRuleIdent)); + return CSSValueList::createSpaceSeparated(WTFMove(list)); }; return consumeCommaSeparatedListWithSingleValueOptimization(range, consume); diff --git a/Source/WebCore/css/process-css-properties.py b/Source/WebCore/css/process-css-properties.py index da182d3f0a5ae..e55319f674f5b 100755 --- a/Source/WebCore/css/process-css-properties.py +++ b/Source/WebCore/css/process-css-properties.py @@ -1595,7 +1595,6 @@ def perform_fixups(self, all_rules): return all_rules.rules_by_name[name_for_lookup].grammar.root_term.perform_fixups(all_rules) return self - def perform_fixups_for_values_references(self, values): # NOTE: The actual name in the grammar is "<>", which we store as is_internal + 'values'. if self.is_internal and self.name.name == "values": @@ -1610,6 +1609,10 @@ def is_builtin(self): def supported_keywords(self): return set() + @property + def has_non_builtin_reference_terms(self): + return not self.is_builtin + # LiteralTerm represents a direct match of a literal character or string. The # syntax in the CSS specifications is either a bare delimiter character or a @@ -1642,6 +1645,10 @@ def perform_fixups_for_values_references(self, values): def supported_keywords(self): return set() + @property + def has_non_builtin_reference_terms(self): + return False + # KeywordTerm represents a direct keyword match. The syntax in the CSS specifications # is a bare string. @@ -1677,6 +1684,10 @@ def perform_fixups_for_values_references(self, values): def supported_keywords(self): return {self.value.name} + @property + def has_non_builtin_reference_terms(self): + return False + @property def requires_context(self): return self.settings_flag or self.status == "internal" @@ -1773,6 +1784,10 @@ def supported_keywords(self): result.update(term.supported_keywords) return result + @property + def has_non_builtin_reference_terms(self): + return any(term.has_non_builtin_reference_terms for term in self.terms) + # GroupTerm represents matching a list of provided terms with # options for whether the matches are ordered and whether all @@ -1838,6 +1853,10 @@ def supported_keywords(self): result.update(subterm.supported_keywords) return result + @property + def has_non_builtin_reference_terms(self): + return any(term.has_non_builtin_reference_terms for term in self.subterms) + # OptionalTerm represents matching a term that is allowed to # be ommited. The syntax in the CSS specifications uses a @@ -1879,6 +1898,10 @@ def perform_fixups_for_values_references(self, values): def supported_keywords(self): return self.subterm.supported_keywords + @property + def has_non_builtin_reference_terms(self): + return self.subterm.has_non_builtin_reference_terms + # UnboundedRepetitionTerm represents matching a list of terms # separated by either spaces or commas. The syntax in the CSS @@ -1949,6 +1972,10 @@ def perform_fixups_for_values_references(self, values): def supported_keywords(self): return self.repeated_term.supported_keywords + @property + def has_non_builtin_reference_terms(self): + return self.repeated_term.has_non_builtin_reference_terms + # BoundedRepetitionTerm represents matching a list of terms # separated by either spaces or commas where the list of terms @@ -2003,6 +2030,10 @@ def perform_fixups_for_values_references(self, values): def supported_keywords(self): return self.repeated_term.supported_keywords + @property + def has_non_builtin_reference_terms(self): + return self.repeated_term.has_non_builtin_reference_terms + # FixedSizeRepetitionTerm represents matching a list of terms # separated by either spaces or commas where the list of terms @@ -2056,6 +2087,10 @@ def perform_fixups_for_values_references(self, values): def supported_keywords(self): return self.repeated_term.supported_keywords + @property + def has_non_builtin_reference_terms(self): + return self.repeated_term.has_non_builtin_reference_terms + # FunctionTerm represents matching a use of the CSS function call syntax # which provides a way for specifications to differentiate groups by @@ -2092,6 +2127,10 @@ def perform_fixups_for_values_references(self, values): def supported_keywords(self): return self.parameter_group_term.supported_keywords + @property + def has_non_builtin_reference_terms(self): + return self.parameter_group_term.has_non_builtin_reference_terms + # Container for the name and root term for a grammar. Used for both shared rules and property specific grammars. class Grammar: @@ -2118,6 +2157,10 @@ def perform_fixups_for_values_references(self, values): self.root_term = self.root_term.perform_fixups_for_values_references(values) def check_against_values(self, values): + if self.has_non_builtin_reference_terms: + # If the grammar has any non-builtin references, the grammar is incomplete and this check cannot be performed. + return + keywords_supported_by_grammar = self.supported_keywords keywords_listed_as_values = frozenset(value.name for value in values) @@ -2163,6 +2206,10 @@ def fast_path_keyword_terms_sorted_by_name(self): def supported_keywords(self): return self.root_term.supported_keywords + @property + def has_non_builtin_reference_terms(self): + return self.root_term.has_non_builtin_reference_terms + # A shared grammar rule and metadata describing it. Part of the set of rules tracked by SharedGrammarRules. class SharedGrammarRule: @@ -2413,10 +2460,10 @@ def generate_property_id_switch_function_bool(self, *, to, signature, iterable, to.newline() def generate_property_id_bit_set(self, *, to, name, iterable, mapping_to_property=lambda p: p): - to.write(f"const WTF::BitSet {name} = ([]() -> WTF::BitSet {{") + to.write(f"const WTF::BitSet {name} = ([]() -> WTF::BitSet {{") with to.indent(): - to.write(f"WTF::BitSet result;") + to.write(f"WTF::BitSet result;") for item in iterable: to.write(f"result.set({mapping_to_property(item).id});") @@ -2494,7 +2541,7 @@ def _generate_css_property_names_gperf_prelude(self, *, to): ) to.write_block("""\ - static_assert(numCSSProperties + 1 <= std::numeric_limits::max(), "CSSPropertyID should fit into uint16_t."); + static_assert(cssPropertyIDEnumValueCount <= (std::numeric_limits::max() + 1), "CSSPropertyID should fit into uint16_t."); """) all_computed_property_ids = (f"{property.id}," for property in self.properties_and_descriptors.style_properties.all_computed) @@ -2693,7 +2740,7 @@ def _generate_is_exposed_functions(self, *, to): def _generate_is_inherited_property(self, *, to): all_inherited_and_ids = (f'{"true " if hasattr(property, "inherited") and property.inherited else "false"}, // {property.id}' for property in self.properties_and_descriptors.all_unique) - to.write(f"constexpr bool isInheritedPropertyTable[numCSSProperties + {GenerationContext.number_of_predefined_properties}] = {{") + to.write(f"constexpr bool isInheritedPropertyTable[cssPropertyIDEnumValueCount] = {{") with to.indent(): to.write(f"false, // CSSPropertyID::CSSPropertyInvalid") to.write(f"true , // CSSPropertyID::CSSPropertyCustom") @@ -2703,7 +2750,7 @@ def _generate_is_inherited_property(self, *, to): to.write_block(""" bool CSSProperty::isInheritedProperty(CSSPropertyID id) { - ASSERT(id < firstCSSProperty + numCSSProperties); + ASSERT(id < cssPropertyIDEnumValueCount); ASSERT(id != CSSPropertyID::CSSPropertyInvalid); return isInheritedPropertyTable[id]; } @@ -3014,8 +3061,18 @@ def _generate_css_property_names_h_property_constants(self, *, to): to.write(f"}};") to.newline() + to.write(f"// Enum value of the first \"real\" CSS property, which excludes") + to.write(f"// CSSPropertyInvalid and CSSPropertyCustom.") to.write(f"constexpr uint16_t firstCSSProperty = {first};") + + to.write(f"// Total number of enum values in the CSSPropertyID enum. If making an array") + to.write(f"// that can be indexed into using the enum value, use this as the size.") + to.write(f"constexpr uint16_t cssPropertyIDEnumValueCount = {count};") + + to.write(f"// Number of \"real\" CSS properties. This differs from cssPropertyIDEnumValueCount,") + to.write(f"// as this doesn't consider CSSPropertyInvalid and CSSPropertyCustom.") to.write(f"constexpr uint16_t numCSSProperties = {num};") + to.write(f"constexpr unsigned maxCSSPropertyNameLength = {max_length};") to.write(f"constexpr auto firstTopPriorityProperty = {first_top_priority_property.id};") to.write(f"constexpr auto lastTopPriorityProperty = {last_top_priority_property.id};") diff --git a/Source/WebCore/dom/DOMQuad.h b/Source/WebCore/dom/DOMQuad.h index 29085672a0b11..cb6d62997abfc 100644 --- a/Source/WebCore/dom/DOMQuad.h +++ b/Source/WebCore/dom/DOMQuad.h @@ -55,10 +55,10 @@ class DOMQuad : public ScriptWrappable, public RefCounted { DOMQuad(const DOMPointInit&, const DOMPointInit&, const DOMPointInit&, const DOMPointInit&); explicit DOMQuad(const DOMRectInit&); - Ref m_p1; - Ref m_p2; - Ref m_p3; - Ref m_p4; + const Ref m_p1; + const Ref m_p2; + const Ref m_p3; + const Ref m_p4; }; } diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp index 818eaadfa9646..02c48710cfee5 100644 --- a/Source/WebCore/dom/Document.cpp +++ b/Source/WebCore/dom/Document.cpp @@ -413,7 +413,7 @@ #include "HTMLVideoElement.h" #endif -#define DOCUMENT_RELEASE_LOG(channel, fmt, ...) RELEASE_LOG(channel, "%p - [pageID=%" PRIu64 ", frameID=%" PRIu64 ", isMainFrame=%d] Document::" fmt, this, pageID() ? pageID()->toUInt64() : 0, frameID() ? frameID()->object().toUInt64() : 0, this == &topDocument(), ##__VA_ARGS__) +#define DOCUMENT_RELEASE_LOG(channel, fmt, ...) RELEASE_LOG(channel, "%p - [pageID=%" PRIu64 ", frameID=%" PRIu64 ", isMainFrame=%d] Document::" fmt, this, pageID() ? pageID()->toUInt64() : 0, frameID() ? frameID()->object().toUInt64() : 0, this->isTopDocument(), ##__VA_ARGS__) #define DOCUMENT_RELEASE_LOG_ERROR(channel, fmt, ...) RELEASE_LOG_ERROR(channel, "%p - [pageID=%" PRIu64 ", frameID=%" PRIu64 ", isMainFrame=%d] Document::" fmt, this, pageID() ? pageID()->toUInt64() : 0, frameID() ? frameID()->object().toUInt64() : 0, this->isTopDocument(), ##__VA_ARGS__) namespace WebCore { @@ -862,10 +862,6 @@ void Document::removedLastRef() m_focusNavigationStartingNode = nullptr; m_userActionElements.clear(); m_asyncNodeDeletionQueue.deleteNodesNow(); -#if ENABLE(FULLSCREEN_API) - if (CheckedPtr fullscreenManager = m_fullscreenManager.get()) - m_fullscreenManager->clear(); -#endif m_associatedFormControls.clear(); m_pendingRenderTreeUpdate = { }; @@ -917,7 +913,7 @@ void Document::commonTeardown() #if ENABLE(FULLSCREEN_API) if (CheckedPtr fullscreenManager = m_fullscreenManager.get()) - fullscreenManager->emptyEventQueue(); + fullscreenManager->clearPendingEvents(); #endif if (CheckedPtr svgExtensions = svgExtensionsIfExists()) @@ -1595,19 +1591,16 @@ Ref Document::createCSSStyleDeclaration() return propertySet->ensureCSSStyleDeclaration(); } -ExceptionOr> Document::importNode(Node& nodeToImport, std::optional>&& argument) +ExceptionOr> Document::importNode(Node& nodeToImport, std::variant&& argument) { - bool deep = false; + bool subtree = false; RefPtr registry; - if (argument) { - auto argumentValue = argument.value(); - if (std::holds_alternative(argumentValue)) { - auto options = std::get(argumentValue); - deep = options.deep; - registry = WTFMove(options.customElements); - } else if (std::get(argumentValue)) - deep = true; - } + if (std::holds_alternative(argument)) { + auto options = std::get(argument); + subtree = !options.selfOnly; + registry = WTFMove(options.customElements); + } else if (std::get(argument)) + subtree = true; if (!registry) registry = customElementRegistry(); switch (nodeToImport.nodeType()) { @@ -1620,7 +1613,7 @@ ExceptionOr> Document::importNode(Node& nodeToImport, std::optional(nodeToImport); @@ -2763,7 +2756,7 @@ void Document::resolveStyle(ResolveStyleType type) updateRenderTree(WTFMove(styleUpdate)); if (frameView->layoutContext().needsLayout()) - frameView->layoutContext().layout(); + frameView->layoutContext().interleavedLayout(); } styleUpdate = resolver.resolve(); @@ -3005,13 +2998,13 @@ std::unique_ptr Document::styleForElementIgnoringPendingStylesheets return WTFMove(elementStyle.style); } -bool Document::updateLayoutIfDimensionsOutOfDate(Element& element, OptionSet dimensionsCheck) +bool Document::updateLayoutIfDimensionsOutOfDate(Element& element, OptionSet dimensionsCheck, OptionSet layoutOptions) { ASSERT(isMainThread()); // If the stylesheets haven't loaded, just give up and do a full layout ignoring pending stylesheets. if (!haveStylesheetsLoaded()) { - updateLayoutIgnorePendingStylesheets(); + updateLayoutIgnorePendingStylesheets(layoutOptions); return true; } @@ -3028,7 +3021,7 @@ bool Document::updateLayoutIfDimensionsOutOfDate(Element& element, OptionSetprotectedDocument()->updateLayoutIfDimensionsOutOfDate(*owner)) { - updateLayout({ }, &element); + updateLayout(layoutOptions, &element); return true; } } @@ -3037,19 +3030,41 @@ bool Document::updateLayoutIfDimensionsOutOfDate(Element& element, OptionSetstyle().hasSkippedContent()) { + if (auto wasSkippedDuringLastLayout = renderer->wasSkippedDuringLastLayoutDueToContentVisibility()) { + if (*wasSkippedDuringLastLayout) + renderer->setNeedsLayout(); + } + } + } + if (!element.renderer() || !frameView->layoutContext().needsLayout()) { // Tree is clean, we don't need to walk the ancestor chain to figure out whether we have a sufficiently clean subtree. return false; } - // If the renderer needs layout for any reason, give up. + // If the renderer needs layout for any reason other than simplified (updating overflow), give up. // Also, turn off this optimization for input elements with shadow content. - bool requireFullLayout = element.renderer()->needsLayout() || is(element); + bool requireFullLayout = is(element); + { + CheckedPtr renderer = element.renderer(); + if (renderer->selfNeedsLayout() || renderer->normalChildNeedsLayout() || renderer->posChildNeedsLayout() || renderer->needsPositionedMovementLayout()) + requireFullLayout = true; + if (renderer->needsSimplifiedNormalFlowLayout()) { + if (!dimensionsCheck.contains(DimensionsCheck::IgnoreOverflow)) + requireFullLayout = true; + else if (CheckedPtr block = dynamicDowncast(*renderer); !dimensionsCheck.contains(DimensionsCheck::IgnoreOverflow) || !block || !block->canPerformSimplifiedLayout()) + requireFullLayout = true; + } + } + if (!requireFullLayout) { CheckedPtr previousBox; CheckedPtr currentBox; CheckedPtr renderer = element.renderer(); + bool hasSpecifiedLogicalHeight = renderer->style().logicalMinHeight() == Length(0, LengthType::Fixed) && renderer->style().logicalHeight().isFixed() && renderer->style().logicalMaxHeight().isAuto(); bool isVertical = !renderer->isHorizontalWritingMode(); bool checkingLogicalWidth = (dimensionsCheck.contains(DimensionsCheck::Width) && !isVertical) || (dimensionsCheck.contains(DimensionsCheck::Height) && isVertical); @@ -3072,6 +3087,11 @@ bool Document::updateLayoutIfDimensionsOutOfDate(Element& element, OptionSetneedsPositionedMovementLayout() || currentBox->normalChildNeedsLayout())) { + requireFullLayout = true; + break; + } + // If a box needs layout for itself or if a box has changed children and sizes its width to // its content, then require a full layout. if (currentBox->selfNeedsLayout() || @@ -3109,7 +3129,7 @@ bool Document::updateLayoutIfDimensionsOutOfDate(Element& element, OptionSetisMainFrame()); - if (!m_resourceMonitor) + if (!m_resourceMonitor) { m_resourceMonitor = ResourceMonitor::create(*frame()); + DOCUMENT_RELEASE_LOG(ResourceMonitoring, "ResourceMonitor is created for the document."); + } return *m_resourceMonitor.get(); } diff --git a/Source/WebCore/dom/Document.h b/Source/WebCore/dom/Document.h index b6ff6a7d7f4b1..b4ccbb9769ec9 100644 --- a/Source/WebCore/dom/Document.h +++ b/Source/WebCore/dom/Document.h @@ -366,8 +366,11 @@ enum class EventHandlerRemoval : bool { One, All }; using EventTargetSet = WeakHashCountedSet; enum class DimensionsCheck : uint8_t { - Width = 1 << 0, - Height = 1 << 1 + Left = 1 << 0, + Top = 1 << 1, + Width = 1 << 2, + Height = 1 << 3, + IgnoreOverflow = 1 << 4, }; enum class HttpEquivPolicy : uint8_t { @@ -514,7 +517,7 @@ class Document WEBCORE_EXPORT ExceptionOr> createProcessingInstruction(String&& target, String&& data); WEBCORE_EXPORT ExceptionOr> createAttribute(const AtomString& name); WEBCORE_EXPORT ExceptionOr> createAttributeNS(const AtomString& namespaceURI, const AtomString& qualifiedName, bool shouldIgnoreNamespaceChecks = false); - WEBCORE_EXPORT ExceptionOr> importNode(Node& nodeToImport, std::optional>&&); + WEBCORE_EXPORT ExceptionOr> importNode(Node& nodeToImport, std::variant&&); WEBCORE_EXPORT ExceptionOr> createElementNS(const AtomString& namespaceURI, const AtomString& qualifiedName); WEBCORE_EXPORT Ref createElement(const QualifiedName&, bool createdByParser, CustomElementRegistry* = nullptr); @@ -766,7 +769,7 @@ class Document bool hasLivingRenderTree() const { return renderView() && !renderTreeBeingDestroyed(); } void updateRenderTree(std::unique_ptr styleUpdate); - bool updateLayoutIfDimensionsOutOfDate(Element&, OptionSet = { DimensionsCheck::Width, DimensionsCheck::Height }); + bool updateLayoutIfDimensionsOutOfDate(Element&, OptionSet = { DimensionsCheck::Width, DimensionsCheck::Height }, OptionSet = { }); inline AXObjectCache* existingAXObjectCache() const; WEBCORE_EXPORT AXObjectCache* axObjectCache() const; diff --git a/Source/WebCore/dom/Document.idl b/Source/WebCore/dom/Document.idl index 61f041478dba7..5045b58c10177 100644 --- a/Source/WebCore/dom/Document.idl +++ b/Source/WebCore/dom/Document.idl @@ -68,7 +68,7 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; [NewObject] Comment createComment(DOMString data); [NewObject] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data); - [CEReactions=Needed, NewObject] Node importNode(Node node, optional (boolean or ImportNodeOptions) options); + [CEReactions=Needed, NewObject] Node importNode(Node node, optional (boolean or ImportNodeOptions) options = false); [CEReactions=Needed] Node adoptNode(Node node); [NewObject] Attr createAttribute([AtomString] DOMString localName); diff --git a/Source/WebCore/dom/DocumentFullscreen.cpp b/Source/WebCore/dom/DocumentFullscreen.cpp index 8fd1b5d2c4c22..9a35d7f05f811 100644 --- a/Source/WebCore/dom/DocumentFullscreen.cpp +++ b/Source/WebCore/dom/DocumentFullscreen.cpp @@ -63,7 +63,7 @@ Element* DocumentFullscreen::webkitCurrentFullScreenElement(Document& document) void DocumentFullscreen::webkitCancelFullScreen(Document& document) { - document.fullscreenManager().cancelFullscreen(); + document.fullscreenManager().fullyExitFullscreen(); } // https://fullscreen.spec.whatwg.org/#exit-fullscreen diff --git a/Source/WebCore/dom/Element.cpp b/Source/WebCore/dom/Element.cpp index 9b35c7c1a8316..b6a103b05ac06 100644 --- a/Source/WebCore/dom/Element.cpp +++ b/Source/WebCore/dom/Element.cpp @@ -1935,7 +1935,7 @@ std::optional, FloatRect>> Element::boundingA FloatRect Element::boundingClientRect() { Ref document = this->document(); - document->updateLayoutIgnorePendingStylesheets({ LayoutOptions::ContentVisibilityForceLayout, LayoutOptions::CanDeferUpdateLayerPositions }, this); + document->updateLayoutIfDimensionsOutOfDate(*this, { DimensionsCheck::Left, DimensionsCheck::Top, DimensionsCheck::Width, DimensionsCheck::Height, DimensionsCheck::IgnoreOverflow }, { LayoutOptions::ContentVisibilityForceLayout, LayoutOptions::CanDeferUpdateLayerPositions, LayoutOptions::IgnorePendingStylesheets }); LocalFrameView::AutoPreventLayerAccess preventAccess(document->view()); auto pair = boundingAbsoluteRectWithoutLayout(); if (!pair) diff --git a/Source/WebCore/dom/ElementAncestorIterator.h b/Source/WebCore/dom/ElementAncestorIterator.h index 3000612fb86c5..dd9150911feae 100644 --- a/Source/WebCore/dom/ElementAncestorIterator.h +++ b/Source/WebCore/dom/ElementAncestorIterator.h @@ -56,10 +56,10 @@ class ElementAncestorRange { explicit ElementAncestorRange(ElementType* first); ElementAncestorIterator begin() const; static constexpr std::nullptr_t end() { return nullptr; } - ElementType* first() const { return m_first; } + ElementType* first() const { return m_first.get(); } private: - ElementType* const m_first; + RefPtr m_first; }; // ElementAncestorIterator diff --git a/Source/WebCore/dom/ElementAncestorIteratorInlines.h b/Source/WebCore/dom/ElementAncestorIteratorInlines.h index 643f3fa314eab..c4adc2e58d66b 100644 --- a/Source/WebCore/dom/ElementAncestorIteratorInlines.h +++ b/Source/WebCore/dom/ElementAncestorIteratorInlines.h @@ -44,7 +44,7 @@ inline ElementAncestorIterator& ElementAncestorIterator inline ElementAncestorIterator ElementAncestorRange::begin() const { - return ElementAncestorIterator(m_first); + return ElementAncestorIterator(m_first.get()); } // Standalone functions diff --git a/Source/WebCore/dom/FullscreenManager.cpp b/Source/WebCore/dom/FullscreenManager.cpp index de6c3c7948387..5c3aabbe641fd 100644 --- a/Source/WebCore/dom/FullscreenManager.cpp +++ b/Source/WebCore/dom/FullscreenManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019 Apple Inc. All rights reserved. + * Copyright (C) 2019-2025 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -39,7 +39,6 @@ #include "HTMLDialogElement.h" #include "HTMLIFrameElement.h" #include "HTMLMediaElement.h" -#include "HTMLNames.h" #include "JSDOMPromiseDeferred.h" #include "LocalDOMWindow.h" #include "LocalFrame.h" @@ -61,9 +60,9 @@ namespace WebCore { -WTF_MAKE_TZONE_ALLOCATED_IMPL(FullscreenManager); +// MARK: - Constructor. -using namespace HTMLNames; +WTF_MAKE_TZONE_ALLOCATED_IMPL(FullscreenManager); FullscreenManager::FullscreenManager(Document& document) : m_document(document) @@ -73,7 +72,20 @@ FullscreenManager::FullscreenManager(Document& document) { } -FullscreenManager::~FullscreenManager() = default; +// MARK: - fullscreenEnabled attribute. +// https://fullscreen.spec.whatwg.org/#dom-document-fullscreenenabled + +bool FullscreenManager::isFullscreenEnabled() const +{ + // The fullscreenEnabled attribute must return true if the context object and all ancestor + // browsing context's documents have their fullscreen enabled flag set, or false otherwise. + + // Top-level browsing contexts are implied to have their allowFullscreen attribute set. + return PermissionsPolicy::isFeatureEnabled(PermissionsPolicy::Feature::Fullscreen, protectedDocument()); +} + +// MARK: - Fullscreen element. +// https://fullscreen.spec.whatwg.org/#fullscreen-element Element* FullscreenManager::fullscreenElement() const { @@ -85,7 +97,9 @@ Element* FullscreenManager::fullscreenElement() const return nullptr; } +// MARK: - requestFullscreen() steps. // https://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen + void FullscreenManager::requestFullscreenForElement(Ref&& element, FullscreenCheckType checkType, CompletionHandler)>&& completionHandler, HTMLMediaElementEnums::VideoFullscreenMode mode) { auto identifier = LOGIDENTIFIER; @@ -97,7 +111,7 @@ void FullscreenManager::requestFullscreenForElement(Ref&& element, Full return completionHandler(Exception { ExceptionCode::TypeError, message }); ERROR_LOG(identifier, message); if (emitErrorEvent == EmitErrorEvent::Yes) { - m_fullscreenErrorEventTargetQueue.append(WTFMove(element)); + m_pendingEvents.append(std::pair { EventType::Error, WTFMove(element) }); protectedDocument()->scheduleRenderingUpdate(RenderingUpdateStep::Fullscreen); } completionHandler(Exception { ExceptionCode::TypeError, message }); @@ -165,18 +179,12 @@ void FullscreenManager::requestFullscreenForElement(Ref&& element, Full INFO_LOG(identifier); - m_pendingFullscreenElement = RefPtr { element.ptr() }; - - protectedDocument()->eventLoop().queueTask(TaskSource::MediaElement, [this, weakThis = WeakPtr { *this }, element = WTFMove(element), completionHandler = WTFMove(completionHandler), hasKeyboardAccess, fullscreenElementReadyCheck, handleError, identifier, mode] () mutable { + protectedDocument()->eventLoop().queueTask(TaskSource::MediaElement, [this, weakThis = WeakPtr { *this }, element = WTFMove(element), scope = CompletionHandlerScope(WTFMove(completionHandler)), hasKeyboardAccess, fullscreenElementReadyCheck, handleError, identifier, mode] () mutable { + auto completionHandler = scope.release(); CheckedPtr checkedThis = weakThis.get(); if (!checkedThis) return completionHandler(Exception { ExceptionCode::TypeError }); - // Don't allow fullscreen if it has been cancelled or a different fullscreen element - // has requested fullscreen. - if (m_pendingFullscreenElement != element.ptr()) - return handleError("Fullscreen request aborted by a fullscreen request for another element."_s, EmitErrorEvent::Yes, WTFMove(completionHandler)); - // Don't allow fullscreen if we're inside an exitFullscreen operation. if (m_pendingExitFullscreen) return handleError("Fullscreen request aborted by a request to exit fullscreen."_s, EmitErrorEvent::Yes, WTFMove(completionHandler)); @@ -211,13 +219,14 @@ void FullscreenManager::requestFullscreenForElement(Ref&& element, Full // 5. Return, and run the remaining steps asynchronously. // 6. Optionally, perform some animation. m_areKeysEnabledInFullscreen = hasKeyboardAccess; - document->eventLoop().queueTask(TaskSource::MediaElement, [this, weakThis = WTFMove(weakThis), element = WTFMove(element), completionHandler = WTFMove(completionHandler), handleError = WTFMove(handleError), identifier, mode] () mutable { + document->eventLoop().queueTask(TaskSource::MediaElement, [this, weakThis = WTFMove(weakThis), element = WTFMove(element), scope = CompletionHandlerScope(WTFMove(completionHandler)), handleError = WTFMove(handleError), identifier, mode] () mutable { + auto completionHandler = scope.release(); CheckedPtr checkedThis = weakThis.get(); if (!checkedThis) return completionHandler(Exception { ExceptionCode::TypeError }); RefPtr page = this->page(); - if (!page || (this->document().hidden() && mode != HTMLMediaElementEnums::VideoFullscreenModeInWindow) || m_pendingFullscreenElement != element.ptr() || !element->isConnected()) + if (!page || (this->document().hidden() && mode != HTMLMediaElementEnums::VideoFullscreenModeInWindow) || !element->isConnected()) return handleError("Invalid state when requesting fullscreen."_s, EmitErrorEvent::Yes, WTFMove(completionHandler)); INFO_LOG(identifier, "task - success"); @@ -234,77 +243,139 @@ void FullscreenManager::requestFullscreenForElement(Ref&& element, Full }); } -void FullscreenManager::cancelFullscreen() +ExceptionOr FullscreenManager::willEnterFullscreen(Element& element, HTMLMediaElementEnums::VideoFullscreenMode mode) { - // The Mozilla "cancelFullscreen()" API behaves like the W3C "fully exit fullscreen" behavior, which - // is defined as: - // "To fully exit fullscreen act as if the exitFullscreen() method was invoked on the top-level browsing - // context's document and subsequently empty that document's fullscreen element stack." - RefPtr mainFrameDocument = this->mainFrameDocument(); - if (!mainFrameDocument) - LOG_ONCE(SiteIsolation, "Unable to fully perform FullscreenManager::cancelFullscreen() without access to the main frame document "); +#if !ENABLE(VIDEO) + UNUSED_PARAM(mode); +#endif - if (!mainFrameDocument || !mainFrameDocument->fullscreenManager().fullscreenElement()) { - // If there is a pending fullscreen element but no top document fullscreen element, - // there is a pending task in enterFullscreen(). Cause it to cancel and fire an error - // by clearing the pending fullscreen element. - m_pendingFullscreenElement = nullptr; - INFO_LOG(LOGIDENTIFIER, "Cancelling pending fullscreen request."); - return; + if (backForwardCacheState() != Document::NotInBackForwardCache) { + ERROR_LOG(LOGIDENTIFIER, "Document in the BackForwardCache; bailing"); + return Exception { ExceptionCode::TypeError }; } - INFO_LOG(LOGIDENTIFIER); + // Protect against being called after the document has been removed from the page. + RefPtr protectedPage = page(); + if (!protectedPage) { + ERROR_LOG(LOGIDENTIFIER, "Document no longer in page; bailing"); + return Exception { ExceptionCode::TypeError }; + } - m_pendingExitFullscreen = true; + // The element is an open popover. + if (element.isPopoverShowing()) { + ERROR_LOG(LOGIDENTIFIER, "Element to fullscreen is an open popover; bailing."); + return Exception { ExceptionCode::TypeError, "Cannot request fullscreen on an open popover."_s }; + } - protectedDocument()->eventLoop().queueTask(TaskSource::MediaElement, [this, weakThis = WeakPtr { *this }, mainFrameDocument = WTFMove(mainFrameDocument), identifier = LOGIDENTIFIER] { -#if RELEASE_LOG_DISABLED - UNUSED_PARAM(this); + INFO_LOG(LOGIDENTIFIER); + ASSERT(page()->isFullscreenManagerEnabled()); + +#if ENABLE(VIDEO) + if (RefPtr mediaElement = dynamicDowncast(element)) + mediaElement->willBecomeFullscreenElement(mode); + else #endif - CheckedPtr checkedThis = weakThis.get(); - if (!checkedThis) - return; + element.willBecomeFullscreenElement(); - if (!mainFrameDocument->page()) { - INFO_LOG(identifier, "Top document has no page."); - return; - } + Vector> ancestors { { element } }; + for (RefPtr frame = element.document().frame(); frame; frame = frame->tree().parent()) { + if (RefPtr ownerElement = frame->ownerElement()) + ancestors.append(ownerElement.releaseNonNull()); + } - // This triggers finishExitFullscreen with ExitMode::Resize, which fully exits the document. - if (RefPtr fullscreenElement = mainFrameDocument->fullscreenManager().fullscreenElement()) { - mainFrameDocument->page()->chrome().client().exitFullScreenForElement(fullscreenElement.get(), [weakThis = WeakPtr { *this }] { - CheckedPtr checkedThis = weakThis.get(); - if (!checkedThis) - return; - checkedThis->didExitFullscreen([] (auto) { }); - }); - } else - INFO_LOG(identifier, "Top document has no fullscreen element"); - }); + for (auto ancestor : makeReversedRange(ancestors)) + elementEnterFullscreen(ancestor); + + if (RefPtr iframe = dynamicDowncast(element)) + iframe->setIFrameFullscreenFlag(true); + + return { }; +} + +void FullscreenManager::elementEnterFullscreen(Element& element) +{ + auto hideUntil = element.topmostPopoverAncestor(Element::TopLayerElementType::Other); + element.document().hideAllPopoversUntil(hideUntil, FocusPreviousElement::No, FireEvents::No); + + auto containingBlockBeforeStyleResolution = SingleThreadWeakPtr { }; + if (CheckedPtr renderer = element.renderer()) + containingBlockBeforeStyleResolution = renderer->containingBlock(); + + element.setFullscreenFlag(true); + element.document().resolveStyle(Document::ResolveStyleType::Rebuild); + + // Remove before adding, so we always add at the end of the top layer. + if (element.isInTopLayer()) + element.removeFromTopLayer(); + element.addToTopLayer(); + + queueFullscreenChangeEventForDocument(element.document()); + + RenderElement::markRendererDirtyAfterTopLayerChange(element.checkedRenderer().get(), containingBlockBeforeStyleResolution.get()); } +bool FullscreenManager::didEnterFullscreen() +{ + RefPtr fullscreenElement = this->fullscreenElement(); + if (!fullscreenElement) { + ERROR_LOG(LOGIDENTIFIER, "No fullscreenElement; bailing"); + return false; + } + + if (backForwardCacheState() != Document::NotInBackForwardCache) { + ERROR_LOG(LOGIDENTIFIER, "Document in the BackForwardCache; bailing"); + return false; + } + INFO_LOG(LOGIDENTIFIER); + + fullscreenElement->didBecomeFullscreenElement(); + return true; +} + +// MARK: - Simple fullscreen document (exit helper). +// https://fullscreen.spec.whatwg.org/#simple-fullscreen-document + +bool FullscreenManager::isSimpleFullscreenDocument() const +{ + bool foundFullscreenFlag = false; + for (Ref element : document().topLayerElements()) { + if (element->hasFullscreenFlag()) { + if (foundFullscreenFlag) + return false; + foundFullscreenFlag = true; + } + } + return foundFullscreenFlag; +} + +// MARK: - Collect documents to unfullscreen (exit helper). // https://fullscreen.spec.whatwg.org/#collect-documents-to-unfullscreen -static Vector> documentsToUnfullscreen(Document& firstDocument) + +static Vector> documentsToUnfullscreen(Frame& firstFrame) { - Vector> documents { Ref { firstDocument } }; - while (true) { - auto lastDocument = documents.last(); - ASSERT(lastDocument->fullscreenManager().fullscreenElement()); - if (!lastDocument->fullscreenManager().isSimpleFullscreenDocument()) - break; - auto frame = lastDocument->frame(); - if (!frame) - break; - auto frameOwner = frame->ownerElement(); - if (!frameOwner) + Vector> documents; + if (RefPtr localFirstFrame = dynamicDowncast(firstFrame); localFirstFrame && localFirstFrame->document()) + documents.append(*localFirstFrame->document()); + for (RefPtr frame = firstFrame.tree().parent(); frame; frame = frame->tree().parent()) { + RefPtr localFrame = dynamicDowncast(frame); + if (!localFrame) + continue; + RefPtr document = localFrame->document(); + if (!document) + continue; + ASSERT(document->fullscreenManager().fullscreenElement()); + if (!document->fullscreenManager().isSimpleFullscreenDocument()) break; - if (auto* iframe = dynamicDowncast(frameOwner); iframe && iframe->hasIFrameFullscreenFlag()) + if (RefPtr iframe = dynamicDowncast(document->ownerElement()); iframe && iframe->hasIFrameFullscreenFlag()) break; - documents.append(frameOwner->document()); + documents.append(*document); } return documents; } +// MARK: - Clear fullscreen flags (exit helper). +// https://fullscreen.spec.whatwg.org/#unfullscreen-an-element + static void clearFullscreenFlags(Element& element) { element.setFullscreenFlag(false); @@ -312,24 +383,28 @@ static void clearFullscreenFlags(Element& element) iframe->setIFrameFullscreenFlag(false); } +// MARK: - Exit fullscreen. +// https://fullscreen.spec.whatwg.org/#exit-fullscreen + void FullscreenManager::exitFullscreen(CompletionHandler)>&& completionHandler) { INFO_LOG(LOGIDENTIFIER); Ref exitingDocument = document(); auto mode = ExitMode::NoResize; - auto exitDocuments = documentsToUnfullscreen(exitingDocument); + Vector> exitDocuments; + if (RefPtr exitingFrame = exitingDocument->frame()) + exitDocuments = documentsToUnfullscreen(*exitingFrame); RefPtr mainFrameDocument = this->mainFrameDocument(); - if (!mainFrameDocument) - LOG_ONCE(SiteIsolation, "Unable to fully perform FullscreenManager::exitFullscreen() without access to the main frame document "); bool exitsTopDocument = exitDocuments.containsIf([&](auto& document) { return document.ptr() == mainFrameDocument.get(); }); - if (exitsTopDocument && mainFrameDocument && mainFrameDocument->fullscreenManager().isSimpleFullscreenDocument()) { + if (!mainFrameDocument || (exitsTopDocument && mainFrameDocument->fullscreenManager().isSimpleFullscreenDocument())) { mode = ExitMode::Resize; - exitingDocument = *mainFrameDocument; + if (mainFrameDocument) + exitingDocument = *mainFrameDocument; } if (RefPtr element = exitingDocument->fullscreenManager().fullscreenElement(); element && !element->isConnected()) { @@ -341,7 +416,8 @@ void FullscreenManager::exitFullscreen(CompletionHandler) m_pendingExitFullscreen = true; // Return promise, and run the remaining steps in parallel. - exitingDocument->eventLoop().queueTask(TaskSource::MediaElement, [this, completionHandler = WTFMove(completionHandler), weakThis = WeakPtr { *this }, mode, identifier = LOGIDENTIFIER] () mutable { + exitingDocument->eventLoop().queueTask(TaskSource::MediaElement, [this, scope = CompletionHandlerScope(WTFMove(completionHandler)), weakThis = WeakPtr { *this }, mode, identifier = LOGIDENTIFIER] () mutable { + auto completionHandler = scope.release(); CheckedPtr checkedThis = weakThis.get(); if (!checkedThis) return completionHandler({ }); @@ -353,13 +429,10 @@ void FullscreenManager::exitFullscreen(CompletionHandler) return completionHandler({ }); } - // If there is a pending fullscreen element but no fullscreen element - // there is a pending task in requestFullscreenForElement(). Cause it to cancel and fire an error - // by clearing the pending fullscreen element. + // If there is no fullscreen element, bail out early. RefPtr exitedFullscreenElement = fullscreenElement(); - if (!exitedFullscreenElement && m_pendingFullscreenElement) { - INFO_LOG(identifier, "task - Cancelling pending fullscreen request."); - m_pendingFullscreenElement = nullptr; + if (!exitedFullscreenElement) { + INFO_LOG(identifier, "task - No fullscreen element."); m_pendingExitFullscreen = false; return completionHandler({ }); } @@ -373,12 +446,12 @@ void FullscreenManager::exitFullscreen(CompletionHandler) checkedThis->didExitFullscreen(WTFMove(completionHandler)); }); } else { - finishExitFullscreen(protectedDocument(), ExitMode::NoResize); + if (RefPtr frame = document().frame()) + finishExitFullscreen(*frame, ExitMode::NoResize); // We just popped off one fullscreen element out of the top layer, query the new one. - m_pendingFullscreenElement = fullscreenElement(); - if (m_pendingFullscreenElement) { - page->chrome().client().enterFullScreenForElement(*m_pendingFullscreenElement, HTMLMediaElementEnums::VideoFullscreenModeStandard, WTFMove(completionHandler), [weakThis = WTFMove(weakThis)] (bool success) { + if (RefPtr newFullscreenElement = fullscreenElement()) { + page->chrome().client().enterFullScreenForElement(*newFullscreenElement, HTMLMediaElementEnums::VideoFullscreenModeStandard, WTFMove(completionHandler), [weakThis = WTFMove(weakThis)] (bool success) { CheckedPtr checkedThis = weakThis.get(); if (!checkedThis || !success) return true; @@ -390,19 +463,20 @@ void FullscreenManager::exitFullscreen(CompletionHandler) }); } -void FullscreenManager::finishExitFullscreen(Document& currentDocument, ExitMode mode) +void FullscreenManager::finishExitFullscreen(Frame& currentFrame, ExitMode mode) { - if (!currentDocument.fullscreenManager().fullscreenElement()) + RefPtr currentLocalFrame = dynamicDowncast(currentFrame); + if (currentLocalFrame && currentLocalFrame->document() && !currentLocalFrame->document()->fullscreenManager().fullscreenElement()) return; // Let descendantDocs be an ordered set consisting of doc’s descendant browsing contexts' active documents whose fullscreen element is non-null, if any, in tree order. - Deque> descendantDocuments; - for (RefPtr descendant = currentDocument.frame() ? currentDocument.frame()->tree().traverseNext() : nullptr; descendant; descendant = descendant->tree().traverseNext()) { + Vector> descendantDocuments; + for (RefPtr descendant = currentFrame.tree().traverseNext(); descendant; descendant = descendant->tree().traverseNext()) { RefPtr localFrame = dynamicDowncast(descendant); if (!localFrame || !localFrame->document()) continue; if (localFrame->document()->fullscreenManager().fullscreenElement()) - descendantDocuments.prepend(*localFrame->document()); + descendantDocuments.append(*localFrame->document()); } auto unfullscreenDocument = [](const Ref& document) { @@ -417,7 +491,7 @@ void FullscreenManager::finishExitFullscreen(Document& currentDocument, ExitMode element->removeFromTopLayer(); }; - auto exitDocuments = documentsToUnfullscreen(currentDocument); + auto exitDocuments = documentsToUnfullscreen(currentFrame); for (Ref exitDocument : exitDocuments) { queueFullscreenChangeEventForDocument(exitDocument); if (mode == ExitMode::Resize) @@ -429,107 +503,13 @@ void FullscreenManager::finishExitFullscreen(Document& currentDocument, ExitMode } } - for (Ref descendantDocument : descendantDocuments) { + for (Ref descendantDocument : makeReversedRange(descendantDocuments)) { queueFullscreenChangeEventForDocument(descendantDocument); unfullscreenDocument(descendantDocument); } } -bool FullscreenManager::isFullscreenEnabled() const -{ - // 4. The fullscreenEnabled attribute must return true if the context object and all ancestor - // browsing context's documents have their fullscreen enabled flag set, or false otherwise. - - // Top-level browsing contexts are implied to have their allowFullscreen attribute set. - return PermissionsPolicy::isFeatureEnabled(PermissionsPolicy::Feature::Fullscreen, protectedDocument()); -} - -ExceptionOr FullscreenManager::willEnterFullscreen(Element& element, HTMLMediaElementEnums::VideoFullscreenMode mode) -{ -#if !ENABLE(VIDEO) - UNUSED_PARAM(mode); -#endif - - if (backForwardCacheState() != Document::NotInBackForwardCache) { - ERROR_LOG(LOGIDENTIFIER, "Document in the BackForwardCache; bailing"); - return Exception { ExceptionCode::TypeError }; - } - - // Protect against being called after the document has been removed from the page. - RefPtr protectedPage = page(); - if (!protectedPage) { - ERROR_LOG(LOGIDENTIFIER, "Document no longer in page; bailing"); - return Exception { ExceptionCode::TypeError }; - } - - // The element is an open popover. - if (element.isPopoverShowing()) { - ERROR_LOG(LOGIDENTIFIER, "Element to fullscreen is an open popover; bailing."); - return Exception { ExceptionCode::TypeError, "Cannot request fullscreen on an open popover."_s }; - } - - // If pending fullscreen element is unset or another element's was requested, - // issue a cancel fullscreen request to the client - if (m_pendingFullscreenElement != &element) { - INFO_LOG(LOGIDENTIFIER, "Pending element mismatch; issuing exit fullscreen request"); - page()->chrome().client().exitFullScreenForElement(&element, [weakThis = WeakPtr { *this }] { - CheckedPtr checkedThis = weakThis.get(); - if (!checkedThis) - return; - checkedThis->didExitFullscreen([] (auto) { }); - }); - return Exception { ExceptionCode::TypeError, "Element requested for fullscreen has changed."_s }; - } - - INFO_LOG(LOGIDENTIFIER); - ASSERT(page()->isFullscreenManagerEnabled()); - -#if ENABLE(VIDEO) - if (RefPtr mediaElement = dynamicDowncast(element)) - mediaElement->willBecomeFullscreenElement(mode); - else -#endif - element.willBecomeFullscreenElement(); - - ASSERT(&element == m_pendingFullscreenElement); - m_pendingFullscreenElement = nullptr; - - m_fullscreenElement = &element; - - Deque> ancestors; - RefPtr ancestor = &element; - do { - ancestors.append(ancestor); - } while ((ancestor = ancestor->document().ownerElement())); - - for (auto ancestor : ancestors) { - auto hideUntil = ancestor->topmostPopoverAncestor(Element::TopLayerElementType::Other); - ancestor->document().hideAllPopoversUntil(hideUntil, FocusPreviousElement::No, FireEvents::No); - - auto containingBlockBeforeStyleResolution = SingleThreadWeakPtr { }; - if (auto* renderer = ancestor->renderer()) - containingBlockBeforeStyleResolution = renderer->containingBlock(); - - ancestor->setFullscreenFlag(true); - ancestor->document().resolveStyle(Document::ResolveStyleType::Rebuild); - - // Remove before adding, so we always add at the end of the top layer. - if (ancestor->isInTopLayer()) - ancestor->removeFromTopLayer(); - ancestor->addToTopLayer(); - - queueFullscreenChangeEventForDocument(ancestor->document()); - - RenderElement::markRendererDirtyAfterTopLayerChange(ancestor->checkedRenderer().get(), containingBlockBeforeStyleResolution.get()); - } - - if (auto* iframe = dynamicDowncast(element)) - iframe->setIFrameFullscreenFlag(true); - - return { }; -} - -bool FullscreenManager::didEnterFullscreen() +bool FullscreenManager::willExitFullscreen() { RefPtr fullscreenElement = this->fullscreenElement(); if (!fullscreenElement) { @@ -543,24 +523,6 @@ bool FullscreenManager::didEnterFullscreen() } INFO_LOG(LOGIDENTIFIER); - fullscreenElement->didBecomeFullscreenElement(); - return true; -} - -bool FullscreenManager::willExitFullscreen() -{ - auto fullscreenElement = fullscreenOrPendingElement(); - if (!fullscreenElement) { - ERROR_LOG(LOGIDENTIFIER, "No fullscreenOrPendingElement(); bailing"); - return false; - } - - if (backForwardCacheState() != Document::NotInBackForwardCache) { - ERROR_LOG(LOGIDENTIFIER, "Document in the BackForwardCache; bailing"); - return false; - } - INFO_LOG(LOGIDENTIFIER); - fullscreenElement->willStopBeingFullscreenElement(); return true; } @@ -574,94 +536,144 @@ void FullscreenManager::didExitFullscreen(CompletionHandlermainFrame(), ExitMode::Resize); - if (auto fullscreenElement = fullscreenOrPendingElement()) - fullscreenElement->didStopBeingFullscreenElement(); + if (exitedFullscreenElement) + exitedFullscreenElement->didStopBeingFullscreenElement(); m_areKeysEnabledInFullscreen = false; - m_fullscreenElement = nullptr; - m_pendingFullscreenElement = nullptr; m_pendingExitFullscreen = false; completionHandler({ }); } -// https://fullscreen.spec.whatwg.org/#run-the-fullscreen-steps -void FullscreenManager::dispatchPendingEvents() +// MARK: - Removing steps. +// https://fullscreen.spec.whatwg.org/#removing-steps + +void FullscreenManager::exitRemovedFullscreenElement(Element& element) { - // Since we dispatch events in this function, it's possible that the - // document will be detached and GC'd. We protect it here to make sure we - // can finish the function successfully. - Ref protectedDocument(document()); - Deque> changeQueue; - m_fullscreenChangeEventTargetQueue.swap(changeQueue); - Deque> errorQueue; - m_fullscreenErrorEventTargetQueue.swap(errorQueue); + ASSERT(element.hasFullscreenFlag()); - dispatchFullscreenChangeOrErrorEvent(changeQueue, EventType::Change, /* shouldNotifyMediaElement */ true); - dispatchFullscreenChangeOrErrorEvent(errorQueue, EventType::Error, /* shouldNotifyMediaElement */ false); + if (fullscreenElement() == &element) { + INFO_LOG(LOGIDENTIFIER, "Fullscreen element removed; exiting fullscreen"); + exitFullscreen([] (auto) { }); + } else + clearFullscreenFlags(element); } -void FullscreenManager::dispatchEventForNode(Node& node, EventType eventType) +// MARK: - Fully exit fullscreen. +// Removes all fullscreen elements from the top layer for all documents. +// https://fullscreen.spec.whatwg.org/#fully-exit-fullscreen + +void FullscreenManager::fullyExitFullscreen() { - switch (eventType) { - case EventType::Change: { - node.dispatchEvent(Event::create(eventNames().fullscreenchangeEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::Yes)); - bool shouldEmitUnprefixed = !(node.hasEventListeners(eventNames().webkitfullscreenchangeEvent) && node.hasEventListeners(eventNames().fullscreenchangeEvent)) && !(node.document().hasEventListeners(eventNames().webkitfullscreenchangeEvent) && node.document().hasEventListeners(eventNames().fullscreenchangeEvent)); - if (shouldEmitUnprefixed) - node.dispatchEvent(Event::create(eventNames().webkitfullscreenchangeEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::Yes)); - break; - } - case EventType::Error: - node.dispatchEvent(Event::create(eventNames().fullscreenerrorEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::Yes)); - node.dispatchEvent(Event::create(eventNames().webkitfullscreenerrorEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::Yes)); - break; + RefPtr mainFrameDocument = this->mainFrameDocument(); + if (!mainFrameDocument) + LOG_ONCE(SiteIsolation, "Unable to fully perform FullscreenManager::fullyExitFullscreen() without access to the main frame document "); + + if (!mainFrameDocument || !mainFrameDocument->fullscreenManager().fullscreenElement()) { + INFO_LOG(LOGIDENTIFIER, "No element to unfullscreen."); + return; } + + INFO_LOG(LOGIDENTIFIER); + + m_pendingExitFullscreen = true; + + protectedDocument()->eventLoop().queueTask(TaskSource::MediaElement, [this, weakThis = WeakPtr { *this }, mainFrameDocument = WTFMove(mainFrameDocument), identifier = LOGIDENTIFIER] { +#if RELEASE_LOG_DISABLED + UNUSED_PARAM(this); +#endif + CheckedPtr checkedThis = weakThis.get(); + if (!checkedThis) + return; + + if (!mainFrameDocument->page()) { + INFO_LOG(identifier, "Top document has no page."); + return; + } + + // This triggers finishExitFullscreen with ExitMode::Resize, which fully exits the document. + if (RefPtr fullscreenElement = mainFrameDocument->fullscreenManager().fullscreenElement()) { + mainFrameDocument->page()->chrome().client().exitFullScreenForElement(fullscreenElement.get(), [weakThis = WeakPtr { *this }] { + CheckedPtr checkedThis = weakThis.get(); + if (!checkedThis) + return; + checkedThis->didExitFullscreen([] (auto) { }); + }); + } else + INFO_LOG(identifier, "Top document has no fullscreen element"); + }); } -void FullscreenManager::dispatchFullscreenChangeOrErrorEvent(Deque>& queue, EventType eventType, bool shouldNotifyMediaElement) +// MARK: - Fullscreen rendering update steps / event dispatching. +// https://fullscreen.spec.whatwg.org/#run-the-fullscreen-steps + +void FullscreenManager::dispatchPendingEvents() { - // Step 3 of https://fullscreen.spec.whatwg.org/#run-the-fullscreen-steps - while (!queue.isEmpty()) { - auto node = queue.takeFirst(); + // Since we dispatch events in this function, it's possible that the + // document will be detached and GC'd. We protect it here to make sure we + // can finish the function successfully. + Ref protectedDocument(document()); + + // Steps 1-2: + auto pendingEvents = std::exchange(m_pendingEvents, { }); + + // Step 3: + while (!pendingEvents.isEmpty()) { + auto [eventType, element] = pendingEvents.takeFirst(); // Gaining or losing fullscreen state may change viewport arguments - node->protectedDocument()->updateViewportArguments(); + element->protectedDocument()->updateViewportArguments(); + if (&element->document() != &document()) + protectedDocument->updateViewportArguments(); #if ENABLE(VIDEO) - if (shouldNotifyMediaElement) { - if (RefPtr mediaElement = dynamicDowncast(node.get())) + if (eventType == EventType::Change) { + if (RefPtr mediaElement = dynamicDowncast(element.get())) mediaElement->enteredOrExitedFullscreen(); } -#else - UNUSED_PARAM(shouldNotifyMediaElement); #endif - // If the element was removed from our tree, also message the documentElement. Since we may - // have a document hierarchy, check that node isn't in another document. - if (!node->isConnected() || &node->document() != &document()) - queue.append(document()); - else - dispatchEventForNode(node.get(), eventType); + // Let target be element if element is connected and its node document is document, and otherwise let target be document. + Ref target = [&]() -> Node& { + if (element->isConnected() && &element->document() == &document()) + return element; + return document(); + }(); + + switch (eventType) { + case EventType::Change: { + target->dispatchEvent(Event::create(eventNames().fullscreenchangeEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::Yes)); + bool shouldEmitUnprefixed = !(target->hasEventListeners(eventNames().webkitfullscreenchangeEvent) && target->hasEventListeners(eventNames().fullscreenchangeEvent)) && !(target->document().hasEventListeners(eventNames().webkitfullscreenchangeEvent) && target->document().hasEventListeners(eventNames().fullscreenchangeEvent)); + if (shouldEmitUnprefixed) + target->dispatchEvent(Event::create(eventNames().webkitfullscreenchangeEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::Yes)); + break; + } + case EventType::Error: + target->dispatchEvent(Event::create(eventNames().fullscreenerrorEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::Yes)); + target->dispatchEvent(Event::create(eventNames().webkitfullscreenerrorEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::Yes)); + break; + } } } -void FullscreenManager::exitRemovedFullscreenElement(Element& element) +void FullscreenManager::queueFullscreenChangeEventForDocument(Document& document) { - ASSERT(element.hasFullscreenFlag()); - - auto fullscreenElement = fullscreenOrPendingElement(); - if (fullscreenElement == &element) { - INFO_LOG(LOGIDENTIFIER, "Fullscreen element removed; exiting fullscreen"); - exitFullscreen([] (auto) { }); - } else - clearFullscreenFlags(element); + RefPtr target = document.fullscreenManager().fullscreenElement(); + if (!target) { + ASSERT_NOT_REACHED(); + return; + } + document.fullscreenManager().queueFullscreenChangeEventForElement(*target); + document.scheduleRenderingUpdate(RenderingUpdateStep::Fullscreen); } +// MARK: - Fullscreen animation pseudo-class. + bool FullscreenManager::isAnimatingFullscreen() const { return m_isAnimatingFullscreen; @@ -680,41 +692,7 @@ void FullscreenManager::setAnimatingFullscreen(bool flag) m_isAnimatingFullscreen = flag; } -void FullscreenManager::clear() -{ - m_fullscreenElement = nullptr; - m_pendingFullscreenElement = nullptr; -} - -void FullscreenManager::emptyEventQueue() -{ - m_fullscreenChangeEventTargetQueue.clear(); - m_fullscreenErrorEventTargetQueue.clear(); -} - -void FullscreenManager::queueFullscreenChangeEventForDocument(Document& document) -{ - RefPtr target = document.fullscreenManager().fullscreenElement(); - if (!target) { - ASSERT_NOT_REACHED(); - return; - } - document.fullscreenManager().addElementToChangeEventQueue(*target); - document.scheduleRenderingUpdate(RenderingUpdateStep::Fullscreen); -} - -bool FullscreenManager::isSimpleFullscreenDocument() const -{ - bool foundFullscreenFlag = false; - for (Ref element : document().topLayerElements()) { - if (element->hasFullscreenFlag()) { - if (foundFullscreenFlag) - return false; - foundFullscreenFlag = true; - } - } - return foundFullscreenFlag; -} +// MARK: - Log channel. #if !RELEASE_LOG_DISABLED WTFLogChannel& FullscreenManager::logChannel() const diff --git a/Source/WebCore/dom/FullscreenManager.h b/Source/WebCore/dom/FullscreenManager.h index cc3283a9a70fb..4fc171b0dc924 100644 --- a/Source/WebCore/dom/FullscreenManager.h +++ b/Source/WebCore/dom/FullscreenManager.h @@ -47,7 +47,7 @@ class FullscreenManager final : public CanMakeWeakPtr, public WTF_OVERRIDE_DELETE_FOR_CHECKED_PTR(FullscreenManager); public: FullscreenManager(Document&); - ~FullscreenManager(); + ~FullscreenManager() = default; Document& document() { return m_document.get(); } const Document& document() const { return m_document.get(); } @@ -63,11 +63,11 @@ class FullscreenManager final : public CanMakeWeakPtr, public RefPtr protectedFullscreenElement() const { return fullscreenElement(); } WEBCORE_EXPORT bool isFullscreenEnabled() const; WEBCORE_EXPORT void exitFullscreen(CompletionHandler)>&&); + WEBCORE_EXPORT void fullyExitFullscreen(); - // Mozilla versions. + // Legacy Mozilla API. bool isFullscreen() const { return fullscreenElement(); } bool isFullscreenKeyboardInputAllowed() const { return fullscreenElement() && m_areKeysEnabledInFullscreen; } - WEBCORE_EXPORT void cancelFullscreen(); enum FullscreenCheckType { EnforceIFrameAllowFullscreenRequirement, @@ -78,26 +78,22 @@ class FullscreenManager final : public CanMakeWeakPtr, public WEBCORE_EXPORT bool willExitFullscreen(); WEBCORE_EXPORT void didExitFullscreen(CompletionHandler)>&&); + WEBCORE_EXPORT static void elementEnterFullscreen(Element&); + void dispatchPendingEvents(); enum class ExitMode : bool { Resize, NoResize }; - void finishExitFullscreen(Document&, ExitMode); + WEBCORE_EXPORT static void finishExitFullscreen(Frame&, ExitMode); void exitRemovedFullscreenElement(Element&); WEBCORE_EXPORT bool isAnimatingFullscreen() const; WEBCORE_EXPORT void setAnimatingFullscreen(bool); - void clear(); - void emptyEventQueue(); - protected: friend class Document; - enum class EventType : bool { Change, Error }; - void dispatchFullscreenChangeOrErrorEvent(Deque>&, EventType, bool shouldNotifyMediaElement); - void dispatchEventForNode(Node&, EventType); - void queueFullscreenChangeEventForDocument(Document&); + void clearPendingEvents() { m_pendingEvents.clear(); } private: #if !RELEASE_LOG_DISABLED @@ -110,18 +106,15 @@ class FullscreenManager final : public CanMakeWeakPtr, public Document* mainFrameDocument() { return document().mainFrameDocument(); } RefPtr protectedMainFrameDocument() { return mainFrameDocument(); } - RefPtr fullscreenOrPendingElement() const { return m_fullscreenElement ? m_fullscreenElement : m_pendingFullscreenElement; } - bool didEnterFullscreen(); - void addElementToChangeEventQueue(Node& target) { m_fullscreenChangeEventTargetQueue.append(GCReachableRef(target)); } - WeakRef m_document; + enum class EventType : bool { Change, Error }; + static void queueFullscreenChangeEventForDocument(Document&); + void queueFullscreenChangeEventForElement(Element& target) { m_pendingEvents.append({ EventType::Change, GCReachableRef(target) }); } - RefPtr m_pendingFullscreenElement; - RefPtr m_fullscreenElement; + WeakRef m_document; - Deque> m_fullscreenChangeEventTargetQueue; - Deque> m_fullscreenErrorEventTargetQueue; + Deque>> m_pendingEvents; bool m_areKeysEnabledInFullscreen { false }; bool m_isAnimatingFullscreen { false }; @@ -130,6 +123,22 @@ class FullscreenManager final : public CanMakeWeakPtr, public #if !RELEASE_LOG_DISABLED const uint64_t m_logIdentifier; #endif + + class CompletionHandlerScope final { + public: + CompletionHandlerScope(CompletionHandler)>&& completionHandler) + : m_completionHandler(WTFMove(completionHandler)) { } + CompletionHandlerScope(CompletionHandlerScope&&) = default; + CompletionHandlerScope& operator=(CompletionHandlerScope&&) = default; + ~CompletionHandlerScope() + { + if (m_completionHandler) + m_completionHandler({ }); + } + CompletionHandler)> release() { return WTFMove(m_completionHandler); } + private: + CompletionHandler)> m_completionHandler; + }; }; } diff --git a/Source/WebCore/dom/ImportNodeOptions.h b/Source/WebCore/dom/ImportNodeOptions.h index d78ea06f7eba6..f352825326083 100644 --- a/Source/WebCore/dom/ImportNodeOptions.h +++ b/Source/WebCore/dom/ImportNodeOptions.h @@ -32,7 +32,7 @@ namespace WebCore { class CustomElementRegistry; struct ImportNodeOptions { - bool deep { false }; + bool selfOnly { false }; RefPtr customElements; }; diff --git a/Source/WebCore/dom/ImportNodeOptions.idl b/Source/WebCore/dom/ImportNodeOptions.idl index 56611fb8f7b08..d26440a4e3413 100644 --- a/Source/WebCore/dom/ImportNodeOptions.idl +++ b/Source/WebCore/dom/ImportNodeOptions.idl @@ -24,6 +24,6 @@ */ dictionary ImportNodeOptions { - boolean deep = false; - CustomElementRegistry customElements = null; + boolean selfOnly = false; + CustomElementRegistry customElements; }; diff --git a/Source/WebCore/dom/ScriptedAnimationController.cpp b/Source/WebCore/dom/ScriptedAnimationController.cpp index 8c9d67b52a852..394cb29f8aa59 100644 --- a/Source/WebCore/dom/ScriptedAnimationController.cpp +++ b/Source/WebCore/dom/ScriptedAnimationController.cpp @@ -73,7 +73,7 @@ Seconds ScriptedAnimationController::interval() const Seconds ScriptedAnimationController::preferredScriptedAnimationInterval() const { - auto* page = this->page(); + RefPtr page = this->page(); if (!page) return FullSpeedAnimationInterval; @@ -90,7 +90,7 @@ OptionSet ScriptedAnimationController::throttlingReasons() con bool ScriptedAnimationController::isThrottledRelativeToPage() const { - if (auto* page = this->page()) + if (RefPtr page = this->page()) return preferredScriptedAnimationInterval() > page->preferredRenderingUpdateInterval(); return false; } @@ -165,13 +165,13 @@ void ScriptedAnimationController::serviceRequestAnimationFrameCallbacks(ReducedR continue; callback->m_firedOrCancelled = true; - if (userGestureTokenToForward && userGestureTokenToForward->hasExpired(UserGestureToken::maximumIntervalForUserGestureForwarding)) + if (userGestureTokenToForward && Ref { *userGestureTokenToForward }->hasExpired(UserGestureToken::maximumIntervalForUserGestureForwarding)) userGestureTokenToForward = nullptr; UserGestureIndicator gestureIndicator(userGestureTokenToForward); auto identifier = callback->m_id; InspectorInstrumentation::willFireAnimationFrame(document, identifier); - callback->handleEvent(highResNowMs); + Ref { callback }->handleEvent(highResNowMs); InspectorInstrumentation::didFireAnimationFrame(document, identifier); } diff --git a/Source/WebCore/dom/SlotAssignment.cpp b/Source/WebCore/dom/SlotAssignment.cpp index e27a1059bcba0..e8fec25e98736 100644 --- a/Source/WebCore/dom/SlotAssignment.cpp +++ b/Source/WebCore/dom/SlotAssignment.cpp @@ -322,6 +322,8 @@ void NamedSlotAssignment::didChangeSlot(const AtomString& slotAttrValue, ShadowR if (slotElement->selfOrPrecedingNodesAffectDirAuto()) slotElement->updateEffectiveTextDirection(); + + slotElement->updateAccessibilityOnSlotChange(); } void NamedSlotAssignment::didRemoveAllChildrenOfShadowHost(ShadowRoot& shadowRoot) diff --git a/Source/WebCore/dom/TextEvent.cpp b/Source/WebCore/dom/TextEvent.cpp index e87984d377460..7733ee3512ba3 100644 --- a/Source/WebCore/dom/TextEvent.cpp +++ b/Source/WebCore/dom/TextEvent.cpp @@ -70,6 +70,7 @@ TextEvent::TextEvent() : UIEvent(EventInterfaceType::TextEvent) , m_shouldSmartReplace(false) , m_shouldMatchStyle(false) + , m_createdFromBindings(true) , m_mailBlockquoteHandling(MailBlockquoteHandling::RespectBlockquote) { } diff --git a/Source/WebCore/dom/TextEvent.h b/Source/WebCore/dom/TextEvent.h index da3e203327792..145f22978566b 100644 --- a/Source/WebCore/dom/TextEvent.h +++ b/Source/WebCore/dom/TextEvent.h @@ -64,6 +64,7 @@ namespace WebCore { bool shouldSmartReplace() const { return m_shouldSmartReplace; } bool shouldMatchStyle() const { return m_shouldMatchStyle; } + bool createdFromBindings() const { return m_createdFromBindings; } MailBlockquoteHandling mailBlockquoteHandling() const { return m_mailBlockquoteHandling; } DocumentFragment* pastingFragment() const { return m_pastingFragment.get(); } const Vector& dictationAlternatives() const { return m_dictationAlternatives; } @@ -83,6 +84,7 @@ namespace WebCore { RefPtr m_pastingFragment; bool m_shouldSmartReplace; bool m_shouldMatchStyle; + bool m_createdFromBindings { false }; MailBlockquoteHandling m_mailBlockquoteHandling; Vector m_dictationAlternatives; }; diff --git a/Source/WebCore/editing/Editor.cpp b/Source/WebCore/editing/Editor.cpp index 62eb0ccad4732..d7e9093644277 100644 --- a/Source/WebCore/editing/Editor.cpp +++ b/Source/WebCore/editing/Editor.cpp @@ -1124,14 +1124,14 @@ String Editor::selectionStartCSSPropertyValue(CSSPropertyID propertyID) return selectionStyle->style()->getPropertyValue(propertyID); } -static void notifyTextFromControls(Element* startRoot, Element* endRoot) +static void notifyTextFromControls(Element* startRoot, Element* endRoot, bool wasUserEdit = true) { RefPtr startingTextControl { enclosingTextFormControl(firstPositionInOrBeforeNode(startRoot)) }; RefPtr endingTextControl { enclosingTextFormControl(firstPositionInOrBeforeNode(endRoot)) }; if (startingTextControl) - startingTextControl->didEditInnerTextValue(); + startingTextControl->didEditInnerTextValue(wasUserEdit); if (endingTextControl && startingTextControl != endingTextControl) - endingTextControl->didEditInnerTextValue(); + endingTextControl->didEditInnerTextValue(wasUserEdit); } static inline bool shouldRemoveAutocorrectionIndicator(bool shouldConsiderApplyingAutocorrection, bool autocorrectionWasApplied, bool isAutocompletion) @@ -1246,7 +1246,11 @@ void Editor::appliedEditing(CompositeEditCommand& command) Ref composition = *command.composition(); VisibleSelection newSelection(command.endingSelection()); - notifyTextFromControls(composition->startingRootEditableElement(), composition->endingRootEditableElement()); + bool wasUserEdit = [&command] { + RefPtr typingCommand = dynamicDowncast(command); + return !typingCommand || !typingCommand->triggeringEventWasCreatedFromBindings(); + }(); + notifyTextFromControls(composition->startingRootEditableElement(), composition->endingRootEditableElement(), wasUserEdit); if (command.isTopLevelCommand()) { // Don't clear the typing style with this selection change. We do those things elsewhere if necessary. @@ -1454,7 +1458,8 @@ bool Editor::insertTextWithoutSendingTextEvent(const String& text, bool selectIn options.add(TypingCommand::Option::IsAutocompletion); if (shouldRemoveAutocorrectionIndicator(shouldConsiderApplyingAutocorrection, autocorrectionWasApplied, options.contains(TypingCommand::Option::IsAutocompletion))) options.remove(TypingCommand::Option::RetainAutocorrectionIndicator); - TypingCommand::insertText(document.copyRef(), text, selection, options, triggeringEvent && triggeringEvent->isComposition() ? TypingCommand::TextCompositionType::Final : TypingCommand::TextCompositionType::None); + auto compositionType = triggeringEvent && triggeringEvent->isComposition() ? TypingCommand::TextCompositionType::Final : TypingCommand::TextCompositionType::None; + TypingCommand::insertText(document.copyRef(), text, triggeringEvent, selection, options, compositionType); } // Reveal the current selection. Note that focus may have changed after insertion. @@ -2412,6 +2417,7 @@ void Editor::setComposition(const String& text, const VectorstartDelayingAndCoalescingContentChangeNotifications(); #endif + RefPtr event; RefPtr target { document->focusedElement() }; if (target) { // Dispatch an appropriate composition event to the focused node. @@ -2429,7 +2435,6 @@ void Editor::setComposition(const String& text, const Vector event; if (!m_compositionNode) { // We should send a compositionstart event only when the given text is not empty because this // function doesn't create a composition node when the text is empty. @@ -2465,7 +2470,7 @@ void Editor::setComposition(const String& text, const Vectorselection().selection().base().downstream(); diff --git a/Source/WebCore/editing/EditorCommand.cpp b/Source/WebCore/editing/EditorCommand.cpp index 0a26bbfe9acf9..763a5baaa8773 100644 --- a/Source/WebCore/editing/EditorCommand.cpp +++ b/Source/WebCore/editing/EditorCommand.cpp @@ -532,9 +532,9 @@ static bool executeInsertTab(LocalFrame& frame, Event* event, EditorCommandSourc return targetFrame(frame, event)->eventHandler().handleTextInputEvent("\t"_s, event); } -static bool executeInsertText(LocalFrame& frame, Event*, EditorCommandSource, const String& value) +static bool executeInsertText(LocalFrame& frame, Event* event, EditorCommandSource, const String& value) { - TypingCommand::insertText(*frame.document(), value, { }); + TypingCommand::insertText(*frame.document(), value, event, { }); return true; } diff --git a/Source/WebCore/editing/TypingCommand.cpp b/Source/WebCore/editing/TypingCommand.cpp index 6b15f6f042595..acd7b5a0c1b17 100644 --- a/Source/WebCore/editing/TypingCommand.cpp +++ b/Source/WebCore/editing/TypingCommand.cpp @@ -47,6 +47,7 @@ #include "Range.h" #include "RenderElement.h" #include "StaticRange.h" +#include "TextEvent.h" #include "TextIterator.h" #include "VisibleUnits.h" @@ -222,17 +223,17 @@ void TypingCommand::updateSelectionIfDifferentFromCurrentSelection(TypingCommand typingCommand->setEndingSelection(currentSelection); } -void TypingCommand::insertText(Ref&& document, const String& text, OptionSet
Go to page 2"_s } }, + { "/2"_s, { ""_s } }, + }); +} + +TEST(ShouldOpenAppLinks, DisallowAppLinksWhenReloadingAfterWebProcessCrash) +{ + auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600)]); + auto delegate = adoptNS([ShouldOpenAppLinksTestNavigationDelegate new]); + [webView setNavigationDelegate:delegate.get()]; + + auto server = shouldOpenAppLinksTestServer(); + + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://127.0.0.1:%d/1", server.port()]]]; + [webView loadRequest:request]; + [delegate waitForDidFinishNavigation]; + + [webView _killWebContentProcess]; + [delegate waitForDidFinishNavigation]; + + EXPECT_NOT_NULL([delegate lastNavigationAction]); + EXPECT_FALSE([[delegate lastNavigationAction] _shouldOpenAppLinks]); +} + +TEST(ShouldOpenAppLinks, DisallowAppLinksWhenReloadingAfterWebProcessCrashAfterFollowingLink) +{ + auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600)]); + auto delegate = adoptNS([ShouldOpenAppLinksTestNavigationDelegate new]); + [webView setNavigationDelegate:delegate.get()]; + + auto server = shouldOpenAppLinksTestServer(); + + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://127.0.0.1:%d/1", server.port()]]]; + [webView loadRequest:request]; + [delegate waitForDidFinishNavigation]; + + [webView evaluateJavaScript:@"document.getElementById(\"test_link\").click()" completionHandler:nil]; + [delegate waitForDidFinishNavigation]; + + [webView _killWebContentProcess]; + [delegate waitForDidFinishNavigation]; + + EXPECT_NOT_NULL([delegate lastNavigationAction]); + EXPECT_FALSE([[delegate lastNavigationAction] _shouldOpenAppLinks]); +} diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm index 1b3fed2224648..7e434285b0e40 100644 --- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm +++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm @@ -3061,6 +3061,21 @@ HTTPServer server({ EXPECT_TRUE([webView canGoBack]); } +TEST(SiteIsolation, RestoreSessionFromAnotherWebView) +{ + HTTPServer server({ + { "/example"_s, { ""_s } }, + { "/frame"_s, { ""_s } } + }, HTTPServer::Protocol::HttpsProxy); + auto [webView1, navigationDelegate] = siteIsolatedViewAndDelegate(server); + [webView1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://example.com/example"]]]; + EXPECT_WK_STREQ([webView1 _test_waitForAlert], "done"); + + auto [webView2, navigationDelegate2] = siteIsolatedViewAndDelegate(server); + [webView2 _restoreSessionState:[webView1 _sessionState] andNavigate:YES]; + EXPECT_WK_STREQ([webView2 _test_waitForAlert], "done"); +} + static void testNavigateIframeBackForward(NSString *navigationURL, bool restoreSessionState) { HTTPServer server({ @@ -3985,6 +4000,86 @@ HTTPServer server({ expectPlayingAudio(webView.get(), false, "Should not be playing audio after removing iframe"_s); } +TEST(SiteIsolation, MutesAndSetsAudioInMultipleFrames) +{ + auto mainFrameHTML = "" + ""_s; + auto subFrameHTML = ""_s; + + RetainPtr videoData = [NSData dataWithContentsOfFile:[NSBundle.test_resourcesBundle pathForResource:@"video-with-audio" ofType:@"mp4"] options:0 error:NULL]; + HTTPResponse videoResponse { videoData.get() }; + videoResponse.headerFields.set("Content-Type"_s, "video/mp4"_s); + + HTTPServer server({ + { "/mainframe"_s, { { { "Content-Type"_s, "text/html"_s } }, mainFrameHTML } }, + { "/subframe"_s, { { { "Content-Type"_s, "text/html"_s } }, subFrameHTML } }, + { "/video-with-audio.mp4"_s, { videoData.get() } }, + }, HTTPServer::Protocol::HttpsProxy); + + WKWebViewConfiguration *configuration = [WKWebViewConfiguration _test_configurationWithTestPlugInClassName:@"WebProcessPlugInWithInternals" configureJSCForTesting:YES]; + auto storeConfiguration = adoptNS([[_WKWebsiteDataStoreConfiguration alloc] initNonPersistentConfiguration]); + [storeConfiguration setHTTPSProxy:[NSURL URLWithString:[NSString stringWithFormat:@"https://127.0.0.1:%d/", server.port()]]]; + [configuration setWebsiteDataStore:adoptNS([[WKWebsiteDataStore alloc] _initWithConfiguration:storeConfiguration.get()]).get()]; + enableSiteIsolation(configuration); + + auto [webView, navigationDelegate] = siteIsolatedViewAndDelegate(configuration); + [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://example.com/mainframe"]]]; + [navigationDelegate waitForDidFinishNavigation]; + + callMethodOnFirstVideoElementInFrame(webView.get(), @"play", nil); + expectPlayingAudio(webView.get(), true, "Should be playing audio in main frame"_s); + + callMethodOnFirstVideoElementInFrame(webView.get(), @"play", [webView firstChildFrame]); + expectPlayingAudio(webView.get(), true, "Should be playing audio in remote frame"_s); + + auto expectMuted = [&](bool expectedMuted, WKFrameInfo *frame, ASCIILiteral reason) { + bool success = TestWebKitAPI::Util::waitFor([&]() { + id actuallyMuted = [webView objectByEvaluatingJavaScript:@"window.internals.isEffectivelyMuted(document.getElementsByTagName('video')[0])" inFrame:frame]; + return [actuallyMuted boolValue] == expectedMuted; + }); + EXPECT_TRUE(success) << reason.characters(); + }; + + auto expectMediaVolume = [&](float expectedMediaVolume, WKFrameInfo *frame, ASCIILiteral reason) { + bool success = TestWebKitAPI::Util::waitFor([&]() { + id actualMediaVolume = [webView objectByEvaluatingJavaScript:@"window.internals.pageMediaVolume()" inFrame:frame]; + return [actualMediaVolume floatValue] == expectedMediaVolume; + }); + EXPECT_TRUE(success) << reason.characters(); + }; + + expectMuted(false, nil, "Should not be muted in main frame"_s); + expectMuted(false, [webView firstChildFrame], "Should not be muted in remote frame"_s); + + [webView _setPageMuted:_WKMediaAudioMuted]; + [webView _setMediaVolumeForTesting:0.125f]; + + expectMuted(true, nil, "Should be muted in main frame"_s); + expectMediaVolume(0.125f, nil, "Should set volume in main frame"_s); + expectMuted(true, [webView firstChildFrame], "Should be muted in remote frame"_s); + expectMediaVolume(0.125f, nil, "Should set volume in remote frame"_s); + + auto addFrameToBody = @"" + "return new Promise((resolve, reject) => {" + " let frame = document.createElement('iframe');" + " frame.onload = () => resolve(true);" + " frame.setAttribute('src', 'https://webkit.org/subframe');" + " document.body.appendChild(frame);" + "})"; + __block RetainPtr error; + __block bool done = false; + [webView callAsyncJavaScript:addFrameToBody arguments:nil inFrame:nil inContentWorld:WKContentWorld.pageWorld completionHandler:^(id result, NSError *callError) { + error = callError; + done = true; + }]; + Util::run(&done); + EXPECT_FALSE(!!error) << "Failed to add iframe: " << [error description].UTF8String; + + callMethodOnFirstVideoElementInFrame(webView.get(), @"play", [webView secondChildFrame]); + expectMuted(true, [webView secondChildFrame], "Should be muted in newly created remote frame"_s); + expectMediaVolume(0.125f, [webView secondChildFrame], "Should initialize newly created remote frame with previously set media volume"_s); +} + TEST(SiteIsolation, FrameServerTrust) { HTTPServer plaintextServer({ diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/UnifiedPDFTests.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/UnifiedPDFTests.mm index fd42e9814cbd4..3188ee0f7814c 100644 --- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/UnifiedPDFTests.mm +++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/UnifiedPDFTests.mm @@ -473,7 +473,12 @@ void pressKey(auto key, unsigned short code, Seconds duration = 200_ms) EXPECT_EQ(pdf->pageCount(), 16UL); } +// FIXME: [ iOS Debug ] TestWebKitAPI.UnifiedPDF.ShouldNotRespectSetViewScale(api-test) is a constant timeout +#if !defined(NDEBUG) +UNIFIED_PDF_TEST(DISABLED_ShouldNotRespectSetViewScale) +#else UNIFIED_PDF_TEST(ShouldNotRespectSetViewScale) +#endif { RetainPtr webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configurationForWebViewTestingUnifiedPDF().get()]); @@ -516,6 +521,7 @@ void pressKey(auto key, unsigned short code, Seconds duration = 200_ms) TestWebKitAPI::Util::run(&done); } +#if ENABLE(IOS_TOUCH_EVENTS) UNIFIED_PDF_TEST(SelectionClearsOnAnchorLinkTap) { RetainPtr webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configurationForWebViewTestingUnifiedPDF().get()]); @@ -537,6 +543,7 @@ void pressKey(auto key, unsigned short code, Seconds duration = 200_ms) [webView waitForNextPresentationUpdate]; EXPECT_WK_STREQ("", [contentView selectedText]); } +#endif #endif diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm index 084d8e353f38e..a910dd1ecffaa 100644 --- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm +++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm @@ -211,12 +211,15 @@ static void createHostViewForExtensionIdentifier(void(^callback)(id hostViewCont runTest(webView); + // FIXME: REGRESSION(290220@main): [ iOS Debug ] TestWebKitAPI.WKWebView.IsDisplayingPDF is a constant timeout +#if !PLATFORM(IOS_FAMILY) || defined(NDEBUG) #if ENABLE(UNIFIED_PDF) if constexpr (TestWebKitAPI::unifiedPDFForTestingEnabled) { webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:TestWebKitAPI::configurationForWebViewTestingUnifiedPDF().get() addToWindow:YES]); runTest(webView); } #endif +#endif } #endif diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm index 5908ad1eb1187..46ce43c24ebfb 100644 --- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm +++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm @@ -586,8 +586,7 @@ Util::run(&receivedActionNotification); } -// FIXME: rdar://116459903 (Web Process is crashing when using declarativeNetRequest to redirect a page) -TEST(WKWebExtensionAPIDeclarativeNetRequest, DISABLED_RedirectRule) +TEST(WKWebExtensionAPIDeclarativeNetRequest, RedirectRule) { auto *pageScript = Util::constructScript(@[ @"