O Firefox 3.6 oferece suporte para padrões web novos e em desenvolvimento, performance melhorada e uma boa experiência para usuários web e desenvolvedores. Está página proporciona links para artigos cobrindo as novas capacidades do Firefox 3.6.
Para desenvolvedores de websites e aplicações
CSS
- Using gradients
-
Firefox 3.6 adicionou o suporte às propriedades sugeridas
-moz-linear-gradiente-moz-radial-gradientparabackground. - Multiple backgrounds
-
A propriedade
background(assim comobackground-color,background-image,background-position,background-repeatebackground-attachment) agora suporta múltiplos fundos de tela. Isto permite a especificação de múltiplos fundos de tela que são renderizados um sobre o outro, em camadas. - Mozilla-specific media features
- Características de mídia foram adicionadas para o sistema de métricas específico da Mozilla, então consultas de mídia podem ser usadas para checar mais seguramente a disponibilidade de características como o suporte a toque.
- Scaling background images
-
A propriedade
background-sizedo CSS 3 Backgrounds and Borders draft é agora suportada sob o nome-moz-background-size. - WOFF font support
-
@font-faceagora suporta arquivos de fonte baixáveis no formato WOFF. - Pointer events
-
A propriedade
pointer-eventspermite ao conteúdo especificar quando um elemento pode ser o alvo ou não de eventos com o ponteiro do mouse.
Miscelânea de mudanças no CSS
- A unidade de comprimento
remdo CSS3 Values and Units é agora suportada. bug 472195 image-renderingé suportada para imagens, imagens de fundo, vídeos e canvas. bug 423756text-align:end é agora suportada. bug 299837- Mudanças no DOM para elementos usando os tipos
displayde tabela agora funcionam muito melhor. - Adicionado
:-moz-locale-dir(ltr)e:-moz-locale-dir(rtl)para facilitar a customização de layouts baseados na interface de usuário que está sendo exibida, usando uma localidade da esquerda para a direita ou da direita para a esquerda. bug 478416 - Adicionado suporte para a pseudo-classe
:indeterminate, que combina com elementoscheckboxinputaos quais o atributoindeterminateétrue. - Plugins em janelas não são mais exibidos em CSS transforms, pois eles não podem ser transformados corretamente pelo compositor.
HTML
- Using files from web applications
-
Suporte para a nova API de Arquivos HTML5 foi adicionada ao Gecko, tornando possível para aplicações web acessar arquivos locais selecionados pelo usuário. Isto inclui suporte para a seleção de múltiplos arquivos usando o novo atributo multiple do elemento HTML
input type="file". - HTML5 vídeo suporta quadros poster
-
O atributo
posteré agora suportado pelo elementovideo, permitindo ao conteúdo especificar um quadro poster a ser exibido até que o vídeo comece a tocar. -
Checkboxes e radio buttons suportam a propriedade
indeterminate -
Os elementos HTML
inputdos tiposcheckboxeradioagora suportam a propriedadeindeterminate, que permite um terceiro estado "indeterminado". - A suavização de imagens em canvas pode ser controlada
-
A nova propriedade
mozImageSmoothingEnabledpode ser usada para ativar e desativar a suavização de imagens quando mudando a escala em elementoscanvas. - Execução de script assíncrona
-
Configurando o atributo
asyncno elementoscript, oscriptnão bloqueará o carregamento ou exibição do resto da página. Ao invés, oscriptexecuta assim que for baixado.
JavaScript
O Gecko 1.9.2 introduz o JavaScript 1.8.2, o qual adiciona algumas características da linguagem do ECMAScript 5 standard:
Date.parse()agora pode analizar datas ISO 8601 como YYYY-MM-DD.-
A propriedade
prototypedas funções de instâncias não são mais enumeráveis.
DOM
Miscelânea de mudanças no DOM
- O método
getBoxObjectFor()foi removido, pois não era um padrão e expunha ainda mais coisas fora do padrão na web. Veja bug 340571. Também afeta MooTools a qual usa esta chamada para a detecção do Gecko; isto foi resolvido na última versão de MooTools, então, certifique-se de atualizar. - As novas propriedades
mozInnerScreenXemozInnerScreenYnas janelas do DOM foram adicionadas; estas retornam coordenadas da tela do canto superior esquerdo do visor da janela. - A nova propriedade
mozScreenPixelsPerCSSPixel, acessível somente ao chrome, proporciona um fator de conversão entre pixels CSS e pixels da tela; este valor pode variar baseado no nível de zoom do conteúdo. - Quando o identificador de fragmentos de documentos URI's da página (a parte após o caractere "#" (hash)) muda, um novo evento
hashchangeé enviado à página. Veja window.onhashchange para mais informações. bug 385434 - O atributo
document.readyStateé agora suportado. bug 347174 - Suporte ao
element.classListHTML5 para permitir a fácil manibulação do atributoclass.bug 501257 localNameenamespaceURIem documentos HTML agora comportam-se agora assim como nos documentos XHTML:localNameretorna em minúsculas enamespaceURIpara elementos HTML é"https://www.w3.org/1999/xhtml".element.getElementsByTagNameNSnão mais suporta minúsculas em seus argumentos, então letras maiúsculas ASCII no argumento evitam a falha de elementos HTML. O mesmo é verdadeiro paradocument.getElementsByTagNameNS.- O suporte foi adicionado para endereços em geolocalização pela interface
nsIDOMGeoPositionAddresse um novo campo adicionado ansIDOMGeoPosition. - A função
window.getComputedStyleagora retorna dentro de aspas os valores (URL).
- Web workers podem agora se auto-terminar
-
Workers agora suportam o método
nsIWorkerScope.close(), que permite a eles, terminá-los eles mesmos. - Arrastar e soltar (drag and drop) agora suportam arquivos
-
O objeto
DataTransferprevisto para arrastar listeners agora inclui uma lista de arquivos que foram arrastados. - Checando para ver se um elemento combina com um seletor CSS especificado
-
O novo método
element.mozMatchesSelectorpermite a determinação se um elemento combina ou não com um seletor CSS especificado. Veja bug 518003. - Detecting device orientation
-
O conteúdo pode agora detectar a orientação do dispositivo se ele possuir um acelerômetro suportado, usando o evento
MozOrientation; vejawindow.onmozorientationpara detalhes. O Firefox 3.6 suporta o acelerômetro em laptops Mac. - Detecting document width and height changes
-
O novo evento
MozScrollAreaChangedé despachado sempre que as propriedadesscrollWidthe/ouscrollHeightdo documento mudam.
XPath
- O método choose() do XPath é agora suportado
-
O método
choose()é agora suportado pela nossa implementação do XPath.
Para desenvolvedores XUL e de complementos
Se você é um desenvolvedor de extensões, deveria começar lendo Updating extensions for Firefox 3.6, o qual oferece uma introdução útil de que mudanças podem afetar sua extensão. Desenvolvedores de plug-ins deveriam ler Updating plug-ins for Firefox 3.6.
Novas Características
- Detecting device orientation
-
O conteúdo pode agora detectar a orientação do dispositivo se ele possuir um acelerômetro suportado, usando o evento
MozOrientation; vejawindow.onmozorientationpara detalhes. O Firefox 3.6 suporta o acelerômetro em laptops Mac. - Monitoring HTTP activity
- É possível agora monitorar transações HTTP para observar requisições e respostas em tempo real.
- Working with the Windows taskbar
- É possível agora customizar a aparência das janelas na barra de tarefas no Windows 7 ou mais recentes.
Places
- Consultas ao Places podem agora especificar quando incluir ou não páginas redirecionadas nos resultados. Veja bug 428690.
- Adicionado o novo método
nsIFaviconService.expireAllFavicons()à interfacensIFaviconService.
Storage
- Locale-aware collation of data is now supported by the Storage API
- O Gecko 1.9.2 adicionou várias novos métodos de agrupamento para proporcionar o agrupamento otimizado (classificação) de resultados usando técnicas de localização-consciente.
- Properties on a statement can now be enumerated
-
Você pode agora usar a enumeração
for..inpara enumerar todas as propriedades de uma declaração. - mozIStorageStatement's getParameterIndex teve o comportamento alterado entre 3.5 e 3.6.
- Veja bug 528166 para detalhes.
- Ligar vários conjuntos de parâmetros assincronamente para executar uma declaração.
- Veja bug 490085 para detalhes. A documentação virá em breve.
Preferências
- A interface
nsIContentPrefServicepossui dois novos métodos:nsIContentPrefService.getPrefsByName()ensIContentPrefService.removePrefsByName().
Temas
Veja Updating themes for Firefox 3.6 para detalhes.
- Lightweight themes
- O Firefox 3.6 suporta temas leves; estes são temas fáceis de criar que simplesmente aplicam uma imagem de fundo ao topo (barra de endereços e barra de botões) e inferior (barra de estado (status)) das janelas do navegador. Esta é uma integração à arquitetura de temas existente Personas no Firefox.
Miscelânea
- O Firefox não carregará mais componentes de terceiros instalados em seu diretório interno de componentes. Isto ajuda a assegurar estabilidade, prevenindo componentes defeituosos de terceiros de serem executados. Desenvolvedores que instalarem componentes desta maneira devem re-empacotar seus componentes como pacotes XPI (en) para então poderem ser instalados como complementos padrão.
contents.rdfnão é mais suportado para o registro do chrome nas extensões. Ao invés disso, deve-se agora usar o arquivochrome.manifest. Veja bug 492008.- Adicionado suporte para ocultar a barra de menus automaticamente. Veja bug 477256.
- Adicionado suporte para o atributo
container-live-rolepara objetos. Veja bug 391829. - O obrigatório
tabs-closebuttonfoi removido. Veja bug 500971. - Adicionado suporte a
nsISoundpara tocar sons baseados em eventos que tenham ocorrido. Veja bug 502799. - A sintaxe para os métodos
nsITreeView.canDrop()ensITreeView.drop()densITreeViewfoi mudada para suportar a nova API de arrastar e soltar (drag & drop) introduzida no Gecko 1.9. Veja bug 455590. - Adicionado suporte para trocar o cursor do mouse para o botão padrão de diálogo ou assistente no Windows, veja bug 76053. Isto é processdo automaticamente pelo elemento de diálogo ou assistente, mas se uma aplicação XUL cria uma janela usando o elemento
windowe ele possui um botão padrão, é necessário chamarnsIDOMChromeWindow.notifyDefaultButtonLoaded()durante o evento manipuladoronloadda janela. - A interface
nsILocalFileMacteve dos elementos removidos:setFileTypeAndCreatorFromMIMEType()esetFileTypeAndCreatorFromExtension(). - O novo módulo de código
NetUtils.jsmproporciona um método fácil de usar para a cópia de dados assíncrona de um fluxo de entrada para um fluxo de saída. - O novo módulo de código
openLocationLastURL.jsmpermite a facilidade para ler e mudar o valor de "Open Location" das URLs lembradas pela caixa de diálogo adequadamente enquanto no modo de navegação privativa. - No Windows, a interface
nsIScreenagora reporta profundidades de cor de 24 bits por pixel quando o driver gráfico solicita 32 bits, uma vez que 24 representa mais acuradamente o número atual de pixels de cor em uso. - Barras de menu podem agora ser ocultadas no Windows, usando o novo atributo
autohideno elemento XULtoolbar. - Os métodos
loadOneTabeaddTabagora aceitam um novo parâmetrorelatedToCurrente, em adição, permitem aos parâmetros serem especificados pelo nome, uma vez que quase todos os parâmetros são opcionais. - A propriedade "hidden" não é mais suportada em manifestos de instalação; não é mais possível evitar que o usuário veja complementos na janela do gerenciador de complementos.
- O componente
@mozilla.org/webshell;1não existe mais; é necessário usar@mozilla.org/docshell;1ao invés. - É possível agora registrar com a categoria update-timer para agendar eventos de tempo sem precisar instanciar o objeto que o contador eventualmente chamará; ao invés disso, ele será instanciado quando for necessário. Veja
nsIUpdateTimerManager.registerTimer()para detalhes. - A função
NPN_GetValue()não mais provê acesso ao XPCOM através dos valores das variáveisNPNVserviceManager,NPNVDOMelementeNPNVDOMWindow. Isto é parte do trabalho de fazer com que os plugins rodem processos separados em uma versão futura do Gecko. - Os plugins não são mais scriptable através das interfaces do XPCOM (IDL), NPRuntime é a API a ser usada para tornar estes plugins scriptable, e
NPP_GetValue()não é mais chamado com o valor deNPPVpluginScriptableInstanceouNPPVpluginScriptableIID. Isto é parte do trabalho de fazer com que os plugins rodem processos separados em uma versão futura do Gecko.
Para desenvolvedores Firefox/Gecko
Algumas mudanças são interessantes somente se você trabalha internamente no próprio Firefox.
Interfaces mescladas
As seguintes interfaces foram unidas:
nsIPluginTagInfo2foi mesclada emnsIPluginTagInfo.nsIPluginInstanceInternal,nsIPPluginInstancePeer,nsIPluginInstancePeer1,nsIPluginInstancePeer2 ensIPluginInstancePeer3foram todas mescladas emnsIPluginInstance.nsIWindowlessPlugInstPeerfoi mesclada emnsIPluginInstance.nsIPluginManagerensIPluginManager2foram mescladas emnsIPluginHost.
Interfaces removidas
As seguintes interfaces foram removidas inteiramente porque eram obsoletas, não utilizadas ou não implementadas:
nsIFullScreennsIDOMSVGListenernsIDOMSVGZoomListenernsIInternetConfigServicensIDKeynsIEventHandlernsIJRILiveConnectPIPeernsIJRILiveConnectPluginnsIScriptablePluginnsIClassicPluginFactorynsIFileUtilities
Interfaces movidas
As seguintes interfaces foram realocadas de seus arquivos IDL anteriores em novos:
nsIDOMNSCSS2Propertiesestá agora localizada em seu próprio arquivo IDL (dom/interfaces/css/nsIDOMCSS2Properties.idl).nsIUpdateTimerManagerestá agora localizada em seu próprio arquivo IDL.
Um grande número de interfaces foram movidas. Veja Interfaces moved in Firefox 3.6 para uma lista completa.
Outras mudanças na interface
As seguintes alterações foram feitas:
- A interface
nsIPluginagora herda densISupportsao invés densIFactory. - A interface
nsIPluginHostagora herda densISupportsao invés densIFactory. - A interface
nsIFrameagora herda densQueryFrameao invés densISupports. - O método getPaletteInfo() de
nsIDeviceContextfoi removido, haja vista que ele nunca foi implementado. - O método reportPendingException() de
nsIScriptContextfoi removido, já que ele não estava mais sendo usado.
Mudanças na acessibilidade do código
- O evento de acessibilidade (en)
EVENT_REORDERé agora enviado quando os "filhos" dos frames e iframes mudam, assim como quando os "filhos" do documento principal mudam. Veja bug 420845. - O
nsIAccessibleTable.selectRow()agora remove corretamente qualquer seleção corrente antes de selecionar uma linha específica.