# Not enabled by default on some ports
Mutation

# Unstable SVG page loading tests
PageLoad/svg/files/33041-Samurai.svg

# Takes too long to load
PageLoad/svg/files/Sierpinski_carpet_6.svg

PageLoad/svg/files/az-lizard_benji_park_01.svg
PageLoad/svg/files/france.svg
PageLoad/svg/files/francobollo_gnome_ezechi_02.svg
PageLoad/svg/files/gearflowers.svg
PageLoad/svg/files/hereGear4.svg

# Takes 22s on MacBookPro
PageLoad/svg/files/mtsthelens.svg

# Do not conform to WebKit or Chromium perf test styles
SunSpider
XSSAuditor

# https://bugs.webkit.org/show_bug.cgi?id=95376
Dromaeo/jslib-modify-jquery.html

# We have pure JS tests separately outside Dromaeo.
Dromaeo/sunspider-3d-morph.html
Dromaeo/sunspider-3d-raytrace.html
Dromaeo/sunspider-access-binary-trees.html
Dromaeo/sunspider-access-fannkuch.html
Dromaeo/sunspider-access-nbody.html
Dromaeo/sunspider-access-nsieve.html
Dromaeo/sunspider-bitops-3bit-bits-in-byte.html
Dromaeo/sunspider-bitops-bits-in-byte.html
Dromaeo/sunspider-bitops-bitwise-and.html
Dromaeo/sunspider-bitops-nsieve-bits.html
Dromaeo/sunspider-controlflow-recursive.html
Dromaeo/sunspider-crypto-aes.html
Dromaeo/sunspider-date-format-tofte.html
Dromaeo/sunspider-date-format-xparb.html
Dromaeo/sunspider-math-cordic.html
Dromaeo/sunspider-math-partial-sums.html
Dromaeo/sunspider-math-spectral-norm.html
Dromaeo/sunspider-regexp-dna.html
Dromaeo/sunspider-string-fasta.html
Dromaeo/sunspider-string-tagcloud.html
Dromaeo/sunspider-string-unpack-code.html
Dromaeo/sunspider-string-validate-input.html
Dromaeo/v8-crypto.html
Dromaeo/v8-deltablue.html
Dromaeo/v8-earley-boyer.html
Dromaeo/v8-raytrace.html
Dromaeo/v8-richards.html

# Bug 77024 - Web Inspector: tests in PerformanceTests/inspector/ are timing out
inspector

