For testharness.js tests, there is timer in the test itself and when the time taken passes that, the result is the text TIMEOUT in the actual result.
The test runner also has a timeout mechanism, but it can change, and the default varies between debug and release builds.
So, for some tests, depending on the default timeout for testharness.js, and the timeout for the layout test runner, and whether the build is debug or release, the test result can be either failure (text diff) or timeout.
This is something that's frequently hit by w3c-test-autoroller, since if the test times out on the try bots, it may fail with the text "TIMEOUT" on debug builds.
Comment 1 by tkent@chromium.org
, Nov 11 2016