Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Firefox 5 para desenvolvedores

Esboço
Esta página está incompleta.

O Firefox 5, é baseado no Gecko 5.0 e será lançado na metade de 2011. Este artigo proporciona links para informações sobre as mudanças que afetam os desenvolvedores nesta versão. Os nightly builds do futuro Firefox 5 estão disponíveis atualmente no canal Beta (iesto é, na seção mozilla-beta).

Nota: Devido à maneira de funcionamento do processo de desenvolvimento, é possível que características atualmente listadas aqui possam ser transferidas para versões futuras do Firefox, por este motivo, por favor, fique atento a esta página.

Mudanças para desenvolvedores

HTML

  • Todos os elementos HTML agora possuem o atributo accessKey, assim como os métodos blur(), click() e focus(). Os quais estão especificados na interface HTMLElement.
  • Com o objetivo de cumprir a especificação do HTML5, foi removido o suporte aos conjuntos de caracteres UTF-7 e UTF-32.
  • Peculiarmente, <map> vazios não são mais ignorados em favor de não vazios quando houver correspondência. Veja as notas do Gecko sobre o elemento <map> para detalhes.

Melhorias no Canvas

  • O contexto de desenhos 2D do <canvas> agora suporta a especificação de um objeto ImageData como entrada para o método createImageData(); isto cria um novo objeto ImageData inicializado com as mesmas dimensões do objeto especificado, mas ainda assim com pixels pré configurados para preto transparente. Isto já foi documentado, mas ainda não foi implementado.
  • A especificação de valores não finitos durante a adicão de cores, agora, através do método CanvasGradient addColorStop() agora lança corretamente INDEX_SIZE_ERR ao invés de SYNTAX_ERR.
  • O método HTMLCanvasElement toDataURL() agora deixa as letras do tipo MIME especificado, minúsculas corretamente, antes da comparação.
  • getImageData() agora aceita corretamente retângulos que se estendem além do limite do seu canvas; pixels fora do canvas são retornados como preto transparente.
  • drawImage() e createImageData() agora lidam com argumentos negativos de acordo com a especificação, coloando o retângulo ao redor do eixo apropriado. É necessário um artigo sobre redimencionamento CSS e como ele funciona.
  • A especificação de valores não finitos na chamada de createImageData() agora lança uma exceção NOT_SUPPORTED_ERR apropriada.
  • createImageData() e getImageData() agora retornam corretamente ao menos um pixels válido dos dados da imagem se um retângulo menor do que um pixels for especificado.
  • A especificação de um raio negativo na chamada de createRadialGradient() agora corretamente lança INDEX_SIZE_ERR.
  • A especificação de uma imagem null ou undefined na chamada de createPattern() ou drawImage() agora corretamente lança uma exceção TYPE_MISMATCH_ERR.
  • A especificação de valores inválidos para globalAlpha não lança mais uma exceção SYNTAX_ERR; estes agora são correta e silenciosamente ignorados.
  • A especificação de valores inválidos na chamada de translate(), transform(), rect(), clearRect(), fillRect(), strokeRect(), lineTo(), moveTo(), quadraticCurveTo() ou arc() não lançam mais uma exceção; estas chamadas são agora correta e silenciosamente ignoradas.
  • A configuração do valor de shadowOffsetX, shadowOffsetY ou shadowBlur para valores inválidos é agora silenciosamente ignorada.
  • A configuração do valor de rotate ou scale para valores inválidos é agora silenciosamente ignorada.

CSS

CSS animations
Foi adicionado o suporte para animações CSS, por enquanto com o uso do prefixo -moz-.

DOM

  • O objeto selection do método modify() foi mudado para que a granularidade da seleção da "palavra" não mais inclua espaços a direita; isto torna-o mais consistente em diferentes plataformas e combina com o comportamento da implementação do WebKit.
  • O método window.setTimeout() agora limita-se a não enviar mais de um tempo limite por segundo em abas inativas. Adicionalmente, ele agora limita-se aos tempos limite aninhados para o menor valor permitido pela especificação do HTML5: 4ms (ao invés de 10ms, antes fixado).
  • Similarmente, o método window.setInterval() agora limita-se a não enviar mais do que um intervalo por segundo em abas inativas.
  • XMLHttpRequest agora suporta o evento loadend para ouvintes de progresso. Isto é enviado após o fim de qualquer transferência (isto é, após os eventos de abort, error ou load). Você pode usar isto para lidar com quaisquer tarefas que necessitem ser realizadas independente do sucesso ou da falha da transferência.
  • O Blob e, por extensão, o objeto File do método slice() foi removido e substituido com uma nova sintaxe que o torna mais consistente com os métodos Array.slice() e String.slice() do JavaScript. Este método foi chamado de mozSlice() por enquanto.
  • O valor de window.navigator.language é agora determinado pela observação do valor de Accept-Language do cabeçalho HTTP.

JavaScript

  • Expressões regulare não podem mais ser chamadas como se fossem funções; esta mudança foi feita juntamente com a equipe do WebKit para assegurar a compatibilidade (veja WebKit bug 28285. Esta característica existiu por um longo tempo mas nunca foi documentada (ao menos não no MDC).
  • O método Function.prototype.isGenerator() é agora suportado; ele permite determinar se uma função é um generator.

SVG

  • O atributo SVG class pode agora ser animado.
  • As seguintes interfaces DOM relacionadas com o SVG, representando listas de objetos são agora indexáveis e podem ser acessadas como uma ordenação; adicionalmente, elas possuem uma propriedade length indicando o número de itens nas listas: SVGLengthList, SVGNumberList, SVGPathSegList e SVGPointList.

HTTP

  • O Firefox não envia mais o cabeçalho HTTP "Keep-Alive"; nós não o estávamos formatando corretamente e ele era redundante, uma vez que também enviávamos o cabeçalho Connection: ou Proxy-Connection: com o valor "keep-alive" de qualquer modo.
  • O modelo de transação HTTP foi atualizado para ser mais inteligente no reuso de conexões na área de conexão permanente; ao invés de tratar isto como uma pilha FIFO, o Necko agora tenta sortear uma área com conexões com as maiores congestion window (CWND) primeiro. Isto pode reduzir o tempo de ida e volta (RTT) de transações HTTP evitando a necessidade de aumentar janelas de conexões em muitos casos.
  • O Firefox agora lida com o cabeçalho de resposta Content-Disposition HTTP mais efetivamente se ambos os parâmetros filename e filename* são fornecidos; ele procura por todos os nomes fornecidos, usando o parâmetro filename* se houver um disponível, mesmo se um parâmetro filename é incluido primeiro. Anteriormente, o primeiro parâmetro de comparação seria usado, desta forma impedindo o uso de um nome mais apropriado. Veja bug 588781.

MathML

Ferramentas para desenvolvedores

  • O objeto Console do Console Web agora possui um método debug(), o qual é um pseudônimo para seu método log(); isto melhora a compatibilidade com certos sites existentes.

Mudanças para desenvolvedores de complementos e da Mozilla

Nota: O Firefox 5 requere que componentes bionários sejam recompilados, assim como todas as versões maiores do Firefox. Veja Interfaces Binárias para detalhes.

Mudanças nos módulos de código do JavaScript

Novos módulos de códigos JavaScript

  • O módulo de código Dict.jsm foi adicionado; ele fornece uma API para dicionários de pares chave/valor.

NetUtil.jsm

Mudanças na interface

  • A interface nsIHttpChannelInternal possui novos atributos provendo acesso à informações sobre os pontos de extremidades dos endereços e portas dos canais. Esta informação é fornecida primariamente para propósitos de depuração.
  • Os atributos width e height do elemento <canvas> são agora refletidos em IDL como unsigned integers ao invés de signed (veja HTMLCanvasElement).

Ferramentas de depuração

  • O novo ajudante DebugOnly<T> torna possível declarar variáveis somente para construções DEBUG.

API JavaScript (SpiderMonkey)

Mudanças no sistema de construção

  • Você pode construir o Firefox sem um arquivo mozconfig; a configuração --enable-application agora tem "browser" por padrão. Após puxar ou baixar o código, você pode simplesmente configure && make (ou make -f client.mk) para construir o Firefox.

Veja também

Etiquetas do documento e colaboradores

 Colaboradores para esta página: teoli, Verruckt
 Última atualização por: teoli,