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-gradient
e-moz-radial-gradient
parabackground
. - Multiple backgrounds
-
A propriedade
background
(assim comobackground-color
,background-image
,background-position
,background-repeat
ebackground-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-size
do CSS 3 Backgrounds and Borders draft é agora suportada sob o nome-moz-background-size
. - WOFF font support
-
@font-face
agora suporta arquivos de fonte baixáveis no formato WOFF. - Pointer events
-
A propriedade
pointer-events
permite 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
rem
do 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
display
de 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 elementoscheckbox
input
aos 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
input
dos tiposcheckbox
eradio
agora suportam a propriedadeindeterminate
, que permite um terceiro estado "indeterminado". - A suavização de imagens em canvas pode ser controlada
-
A nova propriedade
mozImageSmoothingEnabled
pode 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
async
no elementoscript
, oscript
não bloqueará o carregamento ou exibição do resto da página. Ao invés, oscript
executa 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
prototype
das 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
mozInnerScreenX
emozInnerScreenY
nas 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.classList
HTML5 para permitir a fácil manibulação do atributoclass.
bug 501257 localName
enamespaceURI
em documentos HTML agora comportam-se agora assim como nos documentos XHTML:localName
retorna em minúsculas enamespaceURI
para elementos HTML é"https://www.w3.org/1999/xhtml"
.element.getElementsByTagNameNS
nã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
nsIDOMGeoPositionAddress
e um novo campo adicionado ansIDOMGeoPosition
. - A função
window.getComputedStyle
agora 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
DataTransfer
previsto 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.mozMatchesSelector
permite 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.onmozorientation
para 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 propriedadesscrollWidth
e/ouscrollHeight
do 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.onmozorientation
para 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..in
para 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
nsIContentPrefService
possui 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.rdf
nã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-role
para objetos. Veja bug 391829. - O obrigatório
tabs-closebutton
foi removido. Veja bug 500971. - Adicionado suporte a
nsISound
para tocar sons baseados em eventos que tenham ocorrido. Veja bug 502799. - A sintaxe para os métodos
nsITreeView.canDrop()
ensITreeView.drop()
densITreeView
foi 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
window
e ele possui um botão padrão, é necessário chamarnsIDOMChromeWindow.notifyDefaultButtonLoaded()
durante o evento manipuladoronload
da janela. - A interface
nsILocalFileMac
teve dos elementos removidos:setFileTypeAndCreatorFromMIMEType()
esetFileTypeAndCreatorFromExtension()
. - O novo módulo de código
NetUtils.jsm
proporciona 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.jsm
permite 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
nsIScreen
agora 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
autohide
no elemento XULtoolbar
. - Os métodos
loadOneTab
eaddTab
agora aceitam um novo parâmetrorelatedToCurrent
e, 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;1
não existe mais; é necessário usar@mozilla.org/docshell;1
ao 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
,NPNVDOMelement
eNPNVDOMWindow
. 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 deNPPVpluginScriptableInstance
ouNPPVpluginScriptableIID
. 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:
nsIPluginTagInfo2
foi mesclada emnsIPluginTagInfo
.nsIPluginInstanceInternal
,nsIPPluginInstancePeer
,nsIPluginInstancePeer1
,nsIPluginInstancePeer2 e
nsIPluginInstancePeer3
foram todas mescladas emnsIPluginInstance
.nsIWindowlessPlugInstPeer
foi mesclada emnsIPluginInstance
.nsIPluginManager
ensIPluginManager2
foram mescladas emnsIPluginHost
.
Interfaces removidas
As seguintes interfaces foram removidas inteiramente porque eram obsoletas, não utilizadas ou não implementadas:
nsIFullScreen
nsIDOMSVGListener
nsIDOMSVGZoomListener
nsIInternetConfigService
nsIDKey
nsIEventHandler
nsIJRILiveConnectPIPeer
nsIJRILiveConnectPlugin
nsIScriptablePlugin
nsIClassicPluginFactory
nsIFileUtilities
Interfaces movidas
As seguintes interfaces foram realocadas de seus arquivos IDL anteriores em novos:
nsIDOMNSCSS2Properties
está agora localizada em seu próprio arquivo IDL (dom/interfaces/css/nsIDOMCSS2Properties.idl
).nsIUpdateTimerManager
está 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
nsIPlugin
agora herda densISupports
ao invés densIFactory
. - A interface
nsIPluginHost
agora herda densISupports
ao invés densIFactory
. - A interface
nsIFrame
agora herda densQueryFrame
ao invés densISupports
. - O método getPaletteInfo() de
nsIDeviceContext
foi removido, haja vista que ele nunca foi implementado. - O método reportPendingException() de
nsIScriptContext
foi 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.