The bug URL points to URI resolving tests written for the XHR spec; WebKit fails some of them.
Created attachment 26207 [details] Change URI resolution to use the ScriptExecutionContext instead of the DOMWindow
Comment on attachment 26207 [details] Change URI resolution to use the ScriptExecutionContext instead of the DOMWindow > + // The Document can use its encoding to resolve the URI so use its specialized method. > + // FIXME: Once the encoding information have been moved to ScriptExecutionContext, > + // this code should be simplified. Why not put a virtual completeURL function into ScriptExecutionContext now, even if it doesn't handle encoding correctly yet? I don't see the point in adding this if statement.
Created attachment 26213 [details] Updated with Darin & Alexey's comment - Removed FIXME + removed layout test wrapper After some discussion with Alexey, the layout test wrapper is not necessary and was removed. To address Darin's comment, I have added a non-virtual completeURL method to ScriptExecutionContext that wraps the call virtualCompleteURL (in the same way it was done for ScriptExecutionContext::url()).
Comment on attachment 26213 [details] Updated with Darin & Alexey's comment - Removed FIXME + removed layout test wrapper r=me
As promised on IRC, I verified that IE7 passes these tests (and Julien tested with Firefox). Of the subsequent tests that are not included in this patch, IE7 fails 016, 024, 030 and 033.
Comment on attachment 26213 [details] Updated with Darin & Alexey's comment - Removed FIXME + removed layout test wrapper Landed patch in r39453.
Comment on attachment 26213 [details] Updated with Darin & Alexey's comment - Removed FIXME + removed layout test wrapper Clearing review flag per Alexey request.
Here are the results of the remaining tests: Tests that we fail: - 015 - 016 - 024 - 030 (throw NETWORK_ERR) - 031 - 033 Test that Firefox fails: - 015 - 016 (throw NS_ERROR_FAILURE) - 019 - 020 - 022 - 024 - 030 (throw NS_ERROR_FAILURE) - 031 - 033 (throw NS_ERROR_FAILURE in the iframe) Opera: - 015 - 016 (throw INVALID_STATE_ERR) - 021 - 023 - 024 - 025 - 030 (throw security violation) - 031 - 032 - 033
To follow the standard and match IE, we thus have to fix 015 and 031.