Firefox 6 para desenvolvedores

Esboço
Esta página está incompleta.

O Firefox 6, baseado no Gecko 6.0, será lançado no terceiro trimestre de 2011. Este artigo fornece links para informações sobre as mudanças que afetam os desenvolvedores desta versão. Nightly builds do que será o Firefox 6 estão atualmente disponíveis (en) no canal Aurora (isto é, mozilla-aurora).

Nota: Esta página está longe de estar completa. Muitas mudanças ainda não estão listadas, mas serão em breve.
Nota: Itens listados aqui estão previstos para estarem no Firefox 6; entretanto, eles podem ser adicionados em versões futuras se os testes mostrarem que não estão prontos para o lançamento do Firefox 6. Por favor, acompanhe esta página para atualizar-se sobre os planos para o Firefox 6.

Mudanças para desenvolvedores web

HTML

WebSockets
Os WebSockets foram atualizados para a versão do protocolo 07 para o Firefox 6.
  • O elemento <progress> do HTML5, o qual permite a criação de barras de progresso, agora é suportado.
  • A análise do elemento <track> do HTML5, o qual especifica faixas de texto para elementos de mídia, é agora suportado. Este elemento deve aparecer no DOM agora, apesar disso, seu comportamento ainda não foi implementado.
  • O elemento <iframe> agora está corretamente associado ao seu receptáculo quando as bordas do receptáculo foram arredondadas utilizando-se a propriedade border-radius.
  • Campos de texto <input> do elemento <form> não são mais suportam a propriedade maxwidth do XUL; isto nunca foi intencional, e está em desacordo com a especificação do HTML. Você deve ao invés, usar o atributo size para configurar a largura máxima dos campos de entrada.
  • As propriedades fillStyle e strokeStyle do <canvas> CanvasRenderingContext2d costumavam ignorar lixo incluído após a definição correta de cor; agora isto é corretamente tratado, como um erro. Por exemplo, "red blue" como uma cor, costumava ser tratado como "red", quando deveria ser ignorado.
  • A largura e altura dos elementos do <canvas> podem agora serem corretamente configuradas para 0px; anteriormente, elas estavam recebendo uma configuração arbirária de 300px quando essa configuração era testada
  • Foi adicionado suporte para custom data attributes (data-*). A propriedade element.dataset do DOM permite acessá-los.
  • Quando um elemento <textarea> recebe foco, o ponto de inserção de texto é agora indicado, por padrão, no início do texto, ao invés de no fim. Isto torna o comportamento do Firefox consistente com outros navegadores.

CSS

-moz-text-decoration-color
Esta nova propriedade permite configurar a cor usada em decorações de texto, tais como sublinhados, sobrelinhados e rasurados.
-moz-text-decoration-line
Esta nova propriedade permite configurar o tipo de decoração de texto adicionado a um elemento.
-moz-text-decoration-style
Esta nova propriedade permite configurar o estilo das decorações de texto, tais como sublinhado, sobrelinhado e rasurado. Os estilos incluem simples tracejado, tracejado duplo, linha ondulada, linha pontilhada e assim por diante.
-moz-hyphens
Esta nova propriedade permite controlar como é tratada a hifenização das palavras quando ocorre uma quebra de linha.
-moz-orient
Uma nova propriedade (atualmente específica da Mozilla) a qual permite controlar a orientação: vertical ou horizontal, de certos elementos (particularmente <progress>).

Outras mudanças

  • A propriedade @-moz-document possui uma nova função regexp(), a qual permite comparar uma URL de documento com uma expressão regular (en).
  • A propriedade azimuth do CSS não é mais suportada, haja vista a remoção do pequeno código do grupo de mídia aural que tínhamos. A mesma nunca foi significantemente implementada, portanto fazia mais sentido remover uma implementação intrincada pelo tempo ao invés de tentar corrigí-la.
  • No passado, a pseudoclasse :hover não se aplicava a seletores de classe quando no modo quirks; por exemplo, .someclass:hover não funcionava Este quirk foi removido.
  • A pseudoclasse :indeterminate pode ser aplicada a elementos <progress>. Isto não é um padrão, mas esperamos que seja adotado por outros navegadores, pois é útil.

DOM

Using media queries from code (en)
Agora é possível testar o resultado de uma sequência de consulta de mídia programaticamente usando o método window.matchMedia() e a interface MediaQueryList.
  • navigator.securityPolicy, o qual retornou uma string vazia por muito tempo, foi totalmente removido.
  • document.height e document.width foram removidos. bug 585877
  • As propriedades entities e notations do objeto DocumentType, as quais nunca foram implementadas e sempre retornaram  null, foram removidas, uma vez que também foram removidas da especificação.
  • A interface DOMConfiguration e a propriedade document.domConfig que a utilizava foram ambas removidas; elas nunca foram suportadas e já foram removidas da especificação do DOM.
  • O evento hashchange agora inclui corretamente os campos newURL e oldURL (en).
  • O método abort() da interface FileReader agora lança uma exceção quando usado, se nenhuma leitura de arquivo estiver em progresso.
  • Agora é possível detectar quando uma impressão foi iniciada e completada (en) observando os novos eventos beforeprint e afterprint.
  • A propriedade document.strictErrorChecking foi removida, uma vez que nunca foi implementada e que foi removida da especificação do DOM.
  • A propriedade padrão event.defaultPrevented é agora suportada; deve-se usá-la ao invés do método não padrão getPreventdefault() para detectar se event.preventDefault() foi ou não chamado no evento.
  • A propriedade window.top é agora, corretamente, somente letura.
  • A visualização do DOM, a qual nunca foi documentada, foi removida. Isto era um pequeno detalhe de implementação que estava complicando as coisas desnecessariamente, então nos livramos disto. Se esta mudança for percebida, provavelmente se está fazendo alguma coisa errada.
  • O parâmetro EventTarget da função useCapture do addEventListener() é agora opcional, assim como no WebKit. Embora não seja um comportamento padrão, isto melhora a compatibilidade.
  • A propriedade mozResponseArrayBuffer do objeto XMLHttpRequest foi substituida pelas propriedades responseType e response.
  • A propriedade element.dataset foi adicionada à interface HTMLElement permitindo acesso aos atributos globais (en) data-* de um elemento.Global attributes#attr-data-*

JavaScript

  • No passado, era possível usar o operador new em várias funções embutidas (eval, parseInt, Date.parse...) que não deveriam permitir isto, de acordo com a especificação. Este comportamento não é mais suportado. O uso do operador new desta maneira nunca foi oficialmente suportado e não foi muito utilizado, desta forma é pouco provável que esta mudança o afete.
  • O ECMAScript Harmony WeakMaps foi adicionado como uma implementação em protótipos.

SVG

  • O atributo pathLength é agora suportado.
  • Os padrões, gradientes e filtros do SVG agora trabalham corretamente quando carregados de data: URLs (en).

HTTP

  • A análise do "Content-Disposition" do cabeçalho foi corrigida para interpretar corretamente escapes de contrabarras e caracteres ASCII assim como o próprio caractere. Anteriormente o caractere estava sendo substituido incorretamente por um sublinhado ("_").
  • O cabecalho "Accept-Charset" não é mais enviado; sua utilidade é mínima agora que o suporte ao UTF-8 é quase universal e pode ser usado para obter informações (mínimas) sobre os usuários.

Cookies

  • O valor do campo de caminho nos cabeçalhos Set-Cookie é agora interpretado corretamente quando são usadas aspas duplas; anteriormente elas estavam sendo tratadas como parte da string de caminhos ao invés de delimitadores. Esta mudança pode afetar a compatibilidade com alguns sites, os autores devem, desta forma, checar seu código.

Outras mudanças

  • O suporte à microresumos foi removido; estes nunca foram amplamente utilizados, não sendo muito detectáveis. Continuar o suporte a isto estava dificultando a melhoria da arquitetura do Places (favoritos e histórico)
  • O WebGL agora suporta a extensão OES_texture_float.

Mudanças para desenvolvedores Mozilla e de complementos

Nota: O Firefox 6 necessita que os componentes binários sejam recompilados, assim como todos os lançamentos maiores do Firefox. Veja Interfaces Binárias (en) para detalhes.

Módulos de código JavaScript

FileUtils.jsm

  • O método openSafeFileOutputStream() agora abre arquivos com a flag de comportamento (en) DEFER_OPEN  ao invés de tentar abri-los imediatamente.

XPCOMUtils.jsm

  • O novo método importRelative() permite carregar um módulo de código JavaScript de um caminho relativo de outro módulo JavaScript. Isto facilita a construção de módulos que dependam um do outro.

XPCOM

Usando o DOM do chrome

Using the DOM File API in chrome code
Embora sempre tenha sido possível utilizar a API File do DOM do código chrome, o construtor File agora suporta a especificação de uma string de nome de caminho local quando usada através do chrome. Adicionalmente, você também pode especificar o arquivo para acessar usando a API File do DOM usando um objeto nsIFile.

Mudanças de interface

  • nsINavHistoryQueryOptions agora suporta classificação por ordem de frequência, usando as novas constantes SORT_BY_FRECENCY_ASCENDING e SORT_BY_FRECENCY_DESCENDING.
  • nsIFilePicker possui um novo atributo nsIFilePicker.addToRecentDocs, o qual permite indicar que o arquivo selecionado deve ser adicionado à lista de "documentos recentes" do usuário, se houver alguma. Este atributo não tem efeito no modo de navegação privativa.

Novas interfaces

Interfaces removidas

  • A interface nsIDOMDocumentTraversal foi removida. Foi um detalhe de implementação que expirou sua utilidade.
  • A interface nsIDOMDocumentRange foi removida. Foi um detalhe de implementação que expirou sua utilidade.
  • A interface IWeaveCrypto foi removida. Foi um detalhe de implementação que expirou sua utilidade.
  • A interface nsIDOM3DocumentEvent foi removida. Foi um detalhe de implementação que expirou sua utilidade.
  • A interface nsIDOMAbstractView foi removida. Foi um detalhe de implementação que expirou sua utilidade.
  • A interface nsILiveTitleNotificationSubject foi removida. Foi um detalhe de implementação que expirou sua utilidade.

Veja também

Document Tags and Contributors

Contributors to this page: Verruckt
Last updated by: Verruckt,