Firefox sem política de mesma origem

Firefox sem política de mesma origem

Tenho um problema cada vez mais frustrante com a implementação da política de mesma origem no Firefox.

Estou desenvolvendo um sistema integrado com suporte a touch screen, e temos a opção do usuário de carregar páginas web em iframes em diversos locais da tela. As páginas da web podem serqualquertipo de páginas da web de qualquer tipo de domínio e local (google, yahoo, páginas de intranet, etc.) e é aqui que reside o meu problema.

Preciso ser capaz de adicionar um evento onclick ao iframe, que me forneça o ID do iframe (ou algum outro identificador exclusivo) como resposta. Isso me diz que a atividade (navegação na web) está em andamento no iframe e que o iframe não deve ser recarregado (as páginas estão configuradas para um intervalo fixo de atualização automática que deve ser interrompido na atividade.

Eu li quase tudo que o Google me retorna (mas adoraria ser refutado nesse assunto) e descobri que esta é a melhor (entre muitas outras) solução:

<iframe src='http://google.com' id='iframe1' onload='netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); this.contentWindow.document.addEventListener("click", function(event) {alert(this.id);}, false)'></iframe>

Isso só me dá o normalpermissão negada parahttp://localhostpara obter a propriedade Window.document dehttp://google.com

Eu seipor queRecebo esta mensagem de erro e minha pergunta é simples. Como faço para removê-lo?

É um sistema integrado, posso compilar o Firefox a partir do código-fonte, posso editar o código-fonte se necessário, posso alterar o prefs.js etc., mas preciso usar o Firefox (sei que todos os outros navegadores sensatos têm uma boa opção de linha de comando para desligá-lo...), mas temos uma integração (bastante) forte com a plataforma Firefox que seria difícil de remover.

Atualmente usamos o Firefox v.3.5.16 (eu sei que é EOL, vamos atualizá-lo em outra ocasião) em uma plataforma Debian Squeeze. Se necessário, posso atualizar para uma versão mais recente do Firefox, mas pelo que descobri, parece ainda pior neste assunto.

DR Ajude-me a fechar a política de mesma origem, emde qualquer maneira possívelno Firefox 3.5.16 para uma plataforma integrada que precisa alterar o código por meio de iframes entre domínios.

Responder1

Eu me sinto muito estúpido.

Funciona quando você usaConexão UniversalXPem vez de UniversalBrowserWrite.

Por exemplo: netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

Além disso, você podenãouse this.id ou this.parentNode.id, que ainda dá um erro de acesso (diferente). Para resolver esse problema, basta armazená-lo primeiro em uma variável temporária:

onload='var tempstuff = this.id; this.contentWindow.document.addEventListener("click", function(event) {alert(tempstuff);}, false)'

informação relacionada