No SmartClient HTML o TWebEngine é um <Iframe/> e por questões de segurança (Same-origin_policy) os navegadores bloqueiam scripts que tentam acessar um iframe com uma origem diferente.
Isso seria uma falha de segurança e como por exemplo a técnica maliciosa de Clickjacking.
Os eventos que controlam o timeout do Smartclient são disparados pela navegação entre componentes AdvPL (Tab/Enter), porém ao utilizar o componente TWebEngine no SmartClient HTML só será possível capturar esses eventos evitando o InactiveTimout se o protocolo, nome do host e a porta forem da origem.
As configurações abaixo devem ser seguidas.
A origem é considerada diferente se pelo menos uma das seguintes partes do endereço não for mantida: protocol://hostname:port/...
O protocolo, o nome do host e a porta devem ser os mesmos.
Veja o que aconteceria ao tentar acessar as seguintes URLs de http://www.totvs.com/home/index.html
URL | RESULTADO |
---|---|
http://www.totvs.com/home/other.html | SUCESSO |
http://www.totvs.com/dir/inner/another.php | SUCESSO |
http://www.totvs.com:80 | SUCESSO (porta default para HTTP) |
http://www.totvs.com:2255 | FALHA: diferente porta |
http://data.totvs.com/dir/other.html | FALHA: diferente hostname |
https://www.totvs.com/home/index.html:80 | FALHA: diferente protocolo |
ftp://www.totvs.com:21 | FALHA: diferente protocolo & porta |
https://google.com/search?q=james+bond | FALHA: diferente protocolo, porta & hostname |
app_environment=environment
inactiveTimeout=60
Partindo do principio que o protocolo, nome do host e a porta estão iguais, logo não teriamos problemas com o Same-origin_policy e InactiveTimeout.
Exemplo da URL montada com Porta_Multiprotocolo + Same-origin_policy e InactiveTimeout :