Firefox Quantum 57 for developers
Firefox 57 === Firefox Quantum
O Firefox 57 recebeu o nome de lançamento Quantum, após o projeto de engenharia Firefox Quantum que tem como objetivo reconstruir o Firefox a partir do zero, trazendo consigo grande desempenho, estabilidade e melhorias visuais. This is the first version of Firefox to ship some of these improvements, so we wanted to mark the occasion.
Nota: Para ler mais sobre os recursos do Quantum nesta versão, veja: Firefox Quantum Developer Edition: the fastest Firefox ever with Photon UI and better tooling por Dan Callahan.
Firefox's new parallel CSS engine — também conhecido como Quantum CSS ou Stylo ─ está habilitado por padrão no Firefox 57 para desktop, com versões móveis do Firefox para seguir mais tarde. Os desenvolvedores não devem notar nada significativamente diferente, além de toda uma série de melhorias de desempenho. Existem, no entanto, algumas pequenas diferenças funcionais no Stylo, implementado para corrigir o comportamento não padronizado do Gecko que deve ser eliminado. Nos reportaremos tais diferenças nas páginas de referência e nas notas de lançamento conforme apropriado (veja Quantum CSS notes).
Changes for Web developers
Ferramentas de desenvolvimento
Sem mudanças.
HTML
- Os types
<input>
date e time agora estão habilitados em todos builds. (bug 1399036)
CSS
- Os valores
minimal-ui
estandalone
do media query display-mode agora são suportados (bug 1369815). Veja também o Web app manifestdisplay
field. - As propriedades
grid-row-gap
(en-US) egrid-column-gap
(en-US) não são mais redefinidas pelogrid
de forma abreviada (bug 1387410). - A preferência
layout.css.clip-path-shapes.enabled
foi removida (bug 1399767). Esta preferência permite desabilitar a<basic-shape>
(en-US) suportado emclip-path
(en-US). Este suporte foi enviado no Firefox 54 e não pode mais ser desativado.
Quantum CSS notes
Following bugs have been fixed in Quantum:
- Radial gradient values like
radial-gradient(circle gold,red)
will work in the old Gecko style system, even though they shouldn't because of the missing comma betweencircle
andgold
(bug 1383323). - When you animate an offscreen element onscreen but specify a delay, Gecko does not repaint on some platforms, e.g. Windows (bug 1383239).
- In Gecko,
<details>
elements can't be made open by default using theopen
attribute if they have ananimation
active on them (bug 1382124). - In Gecko,
transitions
will not work when transitioning from atext-shadow
with a color specified to atext-shadow
without a color specified (bug 726550). - In Gecko, cancelling a filling animation (e.g. with
animation-fill-mode: forwards
set) can trigger a transition set on the same element, although only once (see bug 1192592 and these test cases for more information). In general declarative animations should not trigger transitions. - Animations using em units are not affected by changes to the
font-size
on the animated element's parent in Gecko, whereas they should be (bug 1254424). - Gecko also deals with
font-size
inheritance differently from Quantum CSS, meaning that for some language settings inherited font sizes end up being smaller than expected (see bug 1391341). - Gecko reuses the same mechanism used when parsing a url-token when parsing the
domain()
orurl-prefix()
URL matching functions for a@-moz-document
(en-US) rule. Quantum CSS does not use the same mechanism and it does not consider tokens invalid when they contain brackets or quotes (bug 1362333). - In Gecko, when you set a system font as the value of a canvas 2D context's
font
(en-US) (e.g.menu
), getting the font value fails to return the expected font (it returns nothing). This has been fixed in Quantum. (bug 1374885). - In Gecko, when you create a detached subtree (e.g. a
<div>
created usingcreateElement()
that is not yet inserted into the DOM), the subtree's root element is set as a block-level element. In Quantum CSS this is set as inline, as per spec (bug 1374994). - In Gecko,
calc
expressions are rejected — causing the value to be invalid — when used as the radius component of aradial-gradient
(en-US) function (bug 1376019). - In Gecko,
calc(1*2*3)
is not parsed successfully; Quantum CSS fixes this (bug 1379467). - In Quantum CSS,
calc()
is supported everywhere that the spec explains it should be (bug 1350857). In Gecko it is not. - Gecko has a bug whereby the
::before
and::after
pseudo-elements are still generated even if thecontent
property value is set tonormal
ornone
. As per spec, they shouldn't be (bug 1387931). - Another Gecko bug means that the
background-position
property can't be transitioned between two values containing different numbers of<position>
(en-US) values, for examplebackground-position: 10px 10px;
andbackground-position: 20px 20px, 30px 30px;
(see bug 1390446).
SVG
Sem mudanças.
JavaScript
- O não-padronizado
for each...in
(E4X) loop foi removido. Por favor, use ofor...of
ao invés disso e veja Warning: JavaScript 1.6's for-each-in loops are deprecated para ajudar na migração. (bug 1083470). - Os métodos
Object.prototype.watch()
eunwatch()
estão descontinuados, agora lançará um alerta(warning) quando usado, e será removido em breve. (bug 934669). - Os objetos não-padronizados Iterator e StopIteration assim como o protocolo de iteração legado foram removidos (bug 1098412).
- Async generator está agora ativado. (bug 1352312).
- A sintaxe for await (...of...) está agora ativado. (bug 1352312).
Novas APIs
- A
PerformanceObserver
(en-US) está habilitado por padrão(default). (bug 1386021). - As interfaces
AbortController
(en-US) eAbortSignal
(conhecidos como o Abort API) foram adicionados, permitindo requisições DOM (tal como fetch requests) ser abortado se desejar. (bug 1378342). - [2] O Storage API (en-US) está implementado e habilitado por padrão(default). (bug 1399038).
DOM
- A propriedade
Selection.type
(en-US) do Selection API (en-US) está agora implementado (bug 1359157). Document.createEvent('FocusEvent')
(en-US) está agora implementado (bug 1388069).- A propriedade
files
da interfaceHTMLInputElement
está agora definível (bug 1384030). - O método
HTMLDocument.getSelection()
foi movido para a interfaceDocument
, por isso está disponível para documentos XML (bug 718711). - O evento
messageerror
está agora implementado e pode ter código executado em resposta a disparar através de manipuladores de eventos implementados em destinos de mensagens ─ VejaMessagePort.onmessageerror
(en-US),DedicatedWorkerGlobalScope.onmessageerror
(en-US),Worker.onmessageerror
(en-US),BroadcastChannel.onmessageerror
(en-US), eWindow.onmessageerror
(bug 1359017). - Quando os valores do
Headers
(en-US) são iterados, eles são automaticamente classificados em ordem lexicográfico e valores de nomes de cabeçalho duplicados são combinados (bug 1396848).
DOM events
Sem mudanças.
Media and WebRTC
- Suporte para mensagens de tamanho arbitrário (até 1GiB, apesar de 256kiB é mais interoperável) está agora suportados em
RTCDataChannel
através do uso da flag end-of-record (EOR) em messagens SCTP. Veja Understanding message size limits (en-US) in [Página ainda não foi escrita] (en-US) para mais informações (bug 979417).Nota: Porque o Firefox ainda não suporta o protocolo SCTP ndata que fornece a capacidade de intercalar mensagens SCTP de múltiplas fontes, o envio de objetos de dados grandes pode causar atrasos significativos em todos os outros tráfegos SCTP. Veja bug 1381145 para acompanhar o progresso na implementação e implementação do suporte a ndata no Firefox.
- O método
RTCDataChannel.send()
(en-US) pode agora lançar uma exceçãoTypeError
se o tamanho da mensagem que você está tentando enviar não é compatível com o recebimento user agent (en-US) (Isto está implementado como parte do bug 979417). - O MediaStream Recording API (en-US) foi atualizado, assim, os eventos de
error (en-US)
enviados para relatar problemas que ocorrem durante a gravação agora são do tipoMediaRecorderErrorEvent
(en-US), em vez de serem eventos genéricos. - Atualizado a documentação ao redor
OfflineAudioContext
desde o seu campos construtores pode agora se especificado ao invés de uma lista de parâmetros (bug 1388591). - O Web Audio API agora suporta corretamente a saída multicanal (bug 1378070).
Security
- URLs
resources://
não mais vazar informações (bug 863246). - Data URIs agora são tratados como origens opacas únicas, em vez de herdar a origem do objeto de configuração responsável pela navegação (bug 1324406).
Plugins
Sem mudanças.
Outros
- Firefox headless mode agora incluídos uma flag
-screenshot
que permite você pegar screenshots de website diretamente da linha de comando (bug 1378010).
Removals from the web platform
HTML
<link rel=”preload”>
(see Preloading content with rel="preload" (en-US)) foi desabilitado no Firefox 57 por causa de vários problemas de compatibilidade da web (por exemplo bug 1405761). Espera-se que uma versão melhorada que funcione para recursos não armazenáveis em cache chegue ao Firefox 58.
APIs
- Propriedade da Mozilla Social API foi completamente removido (bug 1388902).
SVG
Sem mudanças.
Alterações para add-on e desenvolvedores Mozilla
Nota: Começando no Firefox 57, todo suporte para XPCOM-based add-ons foi removido. Todas as extensões devem ser convertidas no novo browser extensions (também conhecido como WebExtensions) ou eles não vão funcionar.
WebExtensions
As seguintes APIs foram adicionadas ou estendidas:
bookmarks
- support for separators through
bookmarks.BookmarkTreeNodeType
(en-US)
- support for separators through
browser_action
(en-US)theme_icons
property for light/dark theme icons
browserAction
browserSettings
browsingData
clipboard
contextualIdentities
onCreated
(en-US)onRemoved
(en-US)onUpdated
(en-US)colorCode
andiconUrl
incontextualIdentitities.ContextualIdentity
(en-US)
devtools.panels
(en-US)downloads
(en-US)incognito
option indownloads.download()
(en-US)estimatedEndTime
property indownloads.DownloadItem
(en-US)
find
pageAction.openPopup()
(en-US)privacy
proxy
(en-US)FindProxyForURL()
can now return an object
runtime
(en-US)runtime.openOptionsPage()
(en-US) support on Android
sessions
(en-US)sidebarAction
(en-US)storage
(en-US)tabs
loadReplace
option intabs.update()
(en-US)discarded
property intabs.Tab
(en-US),tabs.onUpdated
, andtabs.query()
(en-US)tabs.create()
(en-US) can open "view-source:" URLsopenerTabId
property intabs.Tab
(en-US),tabs.create()
(en-US),tabs.query()
(en-US), andtabs.update()
(en-US)
theme
(en-US)colors.toolbar
colors.toolbar_field
colors.toolbar_field_text
colors.toolbar_text
theme
windowId
option totheme.update()
webRequest
(en-US)filterResponseData()
(en-US)proxyInfo
property inwebRequest
(en-US) events
windows
(en-US)allowScriptsToClose
option inwindows.create()
(en-US)
Versões anteriores
- Firefox 56 for developers (en-US)
- Firefox 55 for developers (en-US)
- Firefox 54 for developers (en-US)
- Firefox 53 for developers (en-US)
- Firefox 52 for developers (en-US)
- Firefox 51 for developers (en-US)
- Firefox 50 for developers
- Firefox 49 for developers
- Firefox 48 for developers (en-US)
- Firefox 47 for developers (en-US)
- Firefox 46 for developers (en-US)
- Firefox 45 for developers (en-US)
- Firefox 44 for developers (en-US)
- Firefox 43 for developers (en-US)
- Firefox 42 for developers (en-US)
- Firefox 41 for developers (en-US)
- Firefox 40 for developers (en-US)
- Firefox 39 for developers (en-US)
- Firefox 38 for developers (en-US)
- Firefox 37 for developers (en-US)
- Firefox 36 for developers (en-US)
- Firefox 35 for developers (en-US)
- Firefox 34 for developers (en-US)
- Firefox 33 for developers (en-US)
- Firefox 32 for developers (en-US)
- Firefox 31 for developers (en-US)
- Firefox 30 for developers (en-US)
- Firefox 29 for developers (en-US)
- Firefox 28 for developers (en-US)
- Firefox 27 for developers (en-US)
- Firefox 26 for developers (en-US)