18/12/2018, 23:05

Firefox Quantum 57 cho developers

Bài viết này sẽ cung cấp thông tin chi tiết về những thay đổi trong Firefox 57 (a.k.a. Firefox Quantum). Firefox 57 là phiên bản Beta hiện tại của Firefox (đồng thời cũng là nền tảng của Firefox Developer Edition ), dự tính được tung ra vào 14 tháng 11 năm nay. Firefox 57 ...

Bài viết này sẽ cung cấp thông tin chi tiết về những thay đổi trong Firefox 57 (a.k.a. Firefox Quantum). Firefox 57 là phiên bản Beta hiện tại của Firefox (đồng thời cũng là nền tảng của Firefox Developer Edition), dự tính được tung ra vào 14 tháng 11 năm nay.

Firefox 57 === Firefox Quantum

Firefox 57 được đặt tên là Quantum, dựa theo project Firefox Quantum với mục đích “đập đi xây lại” nhằm cải thiện vượt bật hiệu nặng, hình ảnh hiển thị cũng như tính ổn định.

Firefox’s new parallel CSS engine hay còn được biết là Quantum CSS hoặc Stylo – sẵn có ở mode default trong Firefox 57 cho desktop. Developer sẽ không nhận ra những thay đổi nhiều ngoại trừ việc cải thiện vượt trội trong hiệu năng. Tuy vậy, vẫn có một vài khác biệt trong Stylo với việc non-standard Gecko behavior đã được khắc phục.

Các thay đổi cho Web developers

Developer Tools

Không có thay đổi

HTML

Không có thay đổi

CSS

  • Các giá trị của minimal-ui và standalone của display-mode media query giờ đã được supported (bug 1369815). Bạn cũng nên vào xem Web app manifest display field.
  • grid-row-gap grid-column-gap không còn bị reset bởi grid shorthand (bug 1387410).
  • layout.css.clip-path-shapes.enabled pref, vốn enabled/disabled <basic-shape> support trong clip-path đã được bỏ (bug 1399767).

Quantum CSS notes

Các giá trị trong Radial gradient như radial-gradient(circle gold,red) sẽ vẫn chạy được trên cả các Gecko style system, vốn trước đây không được do thiếu dấu phẩy giữa circle và gold (bug 1383323).

Khi bạn animate một offscreen element onscreen nhưng với một thời gian delay cụ thể, Gecko sẽ đôi khi không repaint trên một số platform (bug 1383239). Lỗi đã được fix trong Quantum.

Khắc phục lỗi trong Gecko, khi các yếu tố của <details> sẽ không thể mở với default khi dùng open attribute nếu chúng vẫn đang chạy animation (bug 1382124).

Trong Gecko, transitions sẽ không hoạt đông khi chuyển đổi từ một text-shadow với các màu cụ thể tới text-shadow không có yêu cầu màu cụ thể (bug 726550). Lỗi đã được fix trong Quantum.

Với Gecko, khi bạn cancel một filling animation (e.g. với animation-fill-mode: forwards set) có thể sẽ kích hoạt một transition set trên cùng một yếu tố (bug 1192592). Lỗi đã được fix trong Quantum.

Animations sử dụng em units không bị ảnh hưởng bởi các thay đổi đến font-size của các yếu tố được animated trong Gecko, trong khi đáng lẽ ra chúng phải bị ảnh hưởng (bug 1254424). Lỗi đã được fix trong Quantum.

Gecko còn gặp phải vấn đề font-size bị sai so với Quantum CSS, nói cách khác một số language settings sẽ có font sizes nhỏ hơn dự kiến (bug 1391341). Lỗi đã được fix trong Quantum.

Gecko reuses lại cách thức cũ khi parsing url-token lúc parsing domain() hoặc url-prefix() URL matching functions cho một @-moz-document rule. Quantum CSS thì không gặp phải vấn đề trên và nó không xét tokens invalid khi chúng có chứa brackets hay quotes (bug 1362333).

Trong Gecko, khi bạn set một system font như là canvas 2D context’s font, thì việc getting font value để return lại đúng front sẽ bị fail. Lỗi đã được fix trong Quantum (bug 1374885).

Với Gecko, khi bạn tạo một subtree ( như <div> được tạo ra để thực hiện createElement()  vốn vẫn chưa được đưa vào DOM), subtree’s root được  set như một block-level element. Còn trong  Quantum CSS, nó lại được set như inline (bug 1374994).

Trong Gecko, expression của calc() bị rejected – khiến cho giá trị của nó bị  invalid – khi được dùng làm  radius component cho một radial-gradient() function  (bug 1376019). Lỗi đã được fix trong Quantum.

Gecko gặp phải lỗi với  calc(1*2*3) không parsed thành công.  Lỗi đã được fix trong Quantum (bug 1379467).

Trong Quantum CSS, calc() được supported tại mọi nơi theo đúng như gì spec yêu cầu trong khi trước đó, với Gecko lại không (bug 1350857).

Gecko có một bug, mỗi khi ::before và  ::after pseudo-elements vẫn còn được tạo ra cho dù content property value đã được set về  normal hoặc none (bug 1387931). Lỗi đã được fix trong Quantum.

Khắc phục một bug khác trong Gecko với background-position property không thể thay đổi giữa giá trị có số khác nhau trong  <position>values, ví dụ như background-position: 10px 10px; and background-position: 20px 20px, 30px 30px; (bug 1390446). Lỗi đã được fix trong Quantum.

SVG

Không có thay đổi

JavaScript

Không có thay đổi

APIs

APIs mới

PerformanceObserver API giờ enabled sẵn trong default (bug 1386021).

DOM

Selection.type property của  Selection API giờ đã được tích hợp (bug 1359157).

Document.createEvent(‘FocusEvent’) giờ đã được supported (bug 1388069).

files property của HTMLInputElement interface giờ đã có thể điều chỉnh setting (bug 1384030).

HTMLDocument.getSelection() giờ đã được chuyển vào Documentinterface để nó có thể sử dụng cho XML documents (bug 718711).

messageerror event đã được tính hợp, cho phép chạy code via event handlers implemented trên message của đối tượng — MessagePort.onmessageerror, DedicatedWorkerGlobalScope.onmessageerror, Worker.onmessageerror, BroadcastChannel.onmessageerror, và Window.onmessageerror (bug 1359017).

Khi Header values hoàn thành vòng lập, chúng sẽ được tự động sắp xếp theo thứ tự của lexicographica, và giá trị từ các header names sẽ được kết hợp lại (bug 1396848).

DOM events

Không có thay đổi

Media và WebRTC

Hỗ trợ cho message với nhiều kích thước khác nhau (giới hạn tới 1gb) trên RTCDataChannel bằng cách sử dụng end-of-record (EOR) flag trên SCTP messages. Bạn có thể tìm hiểu thêm qua  “Understanding message size limits” in Using WebRTC data channels(bug 979417).

Bởi vì Firefox vẫn chưa hỗ trợ SCTP ndata protocol vốn có tính năng xen kẽ các tin nhắn SCTP từ nhiều nguồn khác nhau, việc gửi đi một lượng lớn data object có thể khiến cho việc bị delay rất lớn trên toàn bộ SCTP traffic. Bạn có thể theo dõi bug 1381145 để hiểu thêm về quá trình tích hợp, implement cũng như deploy ndata support trong Firefox.

Phương pháp RTCDataChannel.send() giờ có thể đưa ra một TypeError exception nếu kích thước của message mà bạn đang cố gửi đi lại không tương thích với bên nhận user agent (bug 979417).

Security

  • resource:// URLs không còn để lộ thông tin (bug 863246)
  • Data URIs giờ được xem như một  unique opaque origins, thay vì thừa hưởng lại từ  origin của settings object chịu trách nhiệm cho việc navigation (bug 1324406).

Plugins

Không có thay đổi

Other

  • Giá trị trong fullscreen của Web App Manifest display field giờ tương thích với cả phiên bản Firefox Android 57 (bug 1126479).
  • Firefox headless modeGiờ kèm -screenshot flag cho phép bạn thực hiện website screenshots trực tiếp từ command line (bug 1378010).

Xóa khỏi the web platform

HTML

Không có thay đổi

APIs

  • Mozilla’s proprietary Social API giờ đã bị xóa hoàn toàn (bug 1388902).

SVG

Không có thay đổi

Các thay đổi dành cho add-on và Mozilla developers

Bắt đầu từ Firefox 57, mọi hỗ trợ cho  XPCOM-based add-ons đã được xóa bỏ. Tất cả các extension sẽ phải được convert vào mới  browser extensions thì mới có thể hoạt động được.  

WebExtensions

Không có thay đổi

Techtalk via Mozilla

0