Firefox 6 para programadores
O Firefox 6, baseado no Gecko 6.0, será lançado no dia 16 de agosto de 2011. Este artigo fornece hiperligações para a informação acerca das alterações que afetam os programadores neste lançamento.
Alterações para os programadores da Web
HTML
- O elemento
<progress>
do HTML5, o qual permite a criação de barras de progresso, agora é suportado. - A análise do elemento <track> (en-US) 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> (en-US) agora está corretamente associado ao seu receptáculo quando as bordas do receptáculo foram arredondadas utilizando-se a propriedade border-radius (en-US).
- Campos de texto <input> (en-US) do elemento <form> (en-US) 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 atributosize (en-US)
para configurar a largura máxima dos campos de entrada. - As propriedades
fillStyle
estrokeStyle
do <canvas> (en-US) CanvasRenderingContext2d (en-US) 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> (en-US) 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> (en-US) 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 (en-US)
- Esta nova propriedade permite configurar a cor usada em decorações de texto, tais como sublinhados, sobrelinhados e rasurados.
- -moz-text-decoration-line (en-US)
- Esta nova propriedade permite configurar o tipo de decoração de texto adicionado a um elemento.
- -moz-text-decoration-style (en-US)
- 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 (en-US)
- Esta nova propriedade permite controlar como é tratada a hifenização das palavras quando ocorre uma quebra de linha.
- -moz-orient (en-US)
- Uma nova propriedade (atualmente específica da Mozilla) a qual permite controlar a orientação: vertical ou horizontal, de certos elementos (particularmente
<progress>
). - ::-moz-progress-bar (en-US)
- A Mozilla-specific pseudo-element that lets you style the area of an
<progress>
element representing the completed portion of a task.
Outras alterações
- A propriedade @-moz-document (en-US) 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ídiaaural
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 (en-US) 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 (en-US) pode ser aplicada a elementos
<progress>
. Isto não é um padrão, mas esperamos que seja adotado por outros navegadores, pois é útil.
DOM
- Utilizar pedidos de multimédia do código (en)
- Agora é possível testar o resultado de uma sequência de consulta de mídia programaticamente usando o método window.matchMedia() (en-US) e a interface MediaQueryList (en-US).
navigator.securityPolicy
, o qual retornou uma string vazia por muito tempo, foi totalmente removido.- document.height (en-US) e document.width (en-US) foram removidos. bug 585877
- As propriedades
entities
enotations
do objeto DocumentType (en-US), as quais nunca foram implementadas e sempre retornaramnull
, foram removidas, uma vez que também foram removidas da especificação. - A interface
DOMConfiguration
e a propriedadedocument.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 camposnewURL
eoldURL
(en). - O método
abort()
da interfaceFileReader
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
eafterprint
. - 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 (en-US) é agora suportada; deve-se usá-la ao invés do método não padrão
getPreventdefault()
para detectar se event.preventDefault() (en-US) foi ou não chamado no evento. - A propriedade window.top (en-US) é 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 objetoXMLHttpRequest
foi substituida pelas propriedadesresponseType
eresponse
. - A propriedade
element.dataset
foi adicionada à interfaceHTMLElement
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 operadornew
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 (en-US)
é 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 alterações
- 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
.
Alterações para os programadores de extras e da Mozilla
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
nsCOMArray<T>
agora possui o métodoRemoveObjectsAt()
para remoção de múltiplos objetos de uma só vez de uma ordenação.
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 objetonsIFile
.
Alterações da interface
nsINavHistoryQueryOptions
agora suporta classificação por ordem de frequência, usando as novas constantesSORT_BY_FRECENCY_ASCENDING
eSORT_BY_FRECENCY_DESCENDING
.nsIFilePicker
possui um novo atributonsIFilePicker.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
- Adicionada
mozIAsyncFavicons
. - Adicionada
nsIEventSource
. - Adicionada
nsIGSettingsCollection
. - Adicionada
nsIGSettingsService
. - Adicionada
nsIHttpUpgradeListener
.
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
Outras alterações
- Using preferences from application code
- A new static API is available for easily accessing preferences; this is only available to application code and can't be used by add-ons.