| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Script tool cancellation test</title> |
| </head> |
| <body> |
| <script> |
| window.signalAborted = false; |
| window.toolCancelFired = false; |
| document.modelContext.addEventListener('toolcancel', e => { |
| if (e.toolName === 'hanging_tool') { |
| window.toolCancelFired = true; |
| } |
| }); |
| document.modelContext.registerTool({ |
| name: 'hanging_tool', |
| description: 'Hangs until cancelled by actor', |
| execute: (input, options) => { |
| options.signal.addEventListener('abort', () => { |
| window.signalAborted = true; |
| }); |
| window.domAutomationController.send('hanging_tool_started'); |
| return new Promise(() => {}); |
| } |
| }); |
| </script> |
| </body> |
| </html> |