mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
clean-up navigation
security: check target and source origin before executing JS url implement replacement-enabled flag as a HistoryEntryReplacement enum add source origin string on loaddata add LoadOrigin iframe: remove optional load-data auxiliaries: add load-data into info constellation: remove url from Pipeline::new check load origin: link to whatwg issue switch loadorigin toplevel to constellation
This commit is contained in:
parent
973a3448a4
commit
571beec179
14 changed files with 402 additions and 220 deletions
|
@ -10,6 +10,9 @@
|
|||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<p><a href="javascript:log('JS URL')"></a></p>
|
||||
<script>log('inline script #1');
|
||||
window.addEventListener("beforeunload", function( event ) {
|
||||
log('beforeunload event');
|
||||
});
|
||||
if(document.links[0].click){
|
||||
document.links[0].click();
|
||||
}else{
|
||||
|
@ -25,13 +28,26 @@
|
|||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
function final_test() {
|
||||
// The JS URL part is required to run in an additional task,
|
||||
// altough that is not fully consistently implemented,
|
||||
// see https://github.com/whatwg/html/issues/3730#issuecomment-492071447
|
||||
assert_any(assert_array_equals, eventOrder, [
|
||||
['inline script #1', 'end script #1', 'JS URL', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'JS URL']]);
|
||||
['inline script #1', 'end script #1', 'beforeunload event', 'inline script #2', 'JS URL'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'beforeunload event', 'JS URL']]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
|
||||
function test_on_load() {
|
||||
// When the page loads, a task to run the navigate steps
|
||||
// previously enqueued as part of following-hyperlinks,
|
||||
// should have run, and have enqueued another task to execute the JS URL.
|
||||
assert_any(assert_array_equals, eventOrder, [
|
||||
['inline script #1', 'end script #1', 'beforeunload event', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'beforeunload event']]);
|
||||
t.step_timeout(final_test, 1000)
|
||||
}
|
||||
onload = t.step_func(test_on_load);
|
||||
</script>
|
||||
|
||||
</body></html>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue