# This file is for TestExpectations entries whose bugs haven't had any activity in 3 months.
# Only imported test suites, virtual tests or platform/configuration-specific lines should
# be moved here. The tests for stale cross-platform lines should just be deleted.
#
# Feel free to take ownership of any of these lines and get the test passing.
#
# Further documentation:
# https://chromium.googlesource.com/chromium/src/+/master/docs/testing/layout_test_expectations.md

# We could fix this test for us and upstream it if the test shell user agent
# would let us differentiate test_shell and WebKit DumpTreeNode.
crbug.com/7482 [ Win Mac ] http/tests/misc/timer-vs-loading.html [ WontFix ]

