Ngừng sử dụng và xoá API trong Chrome 57

Joe Medley
Joe Medley

Trong hầu hết các phiên bản Chrome, chúng ta đều thấy một số lượng đáng kể các bản cập nhật và cải tiến đối với sản phẩm, hiệu suất của sản phẩm cũng như các tính năng của Nền tảng web. Bài viết này mô tả các tính năng ngừng hoạt động và bị xoá trong Chrome 57, phiên bản đang trong giai đoạn thử nghiệm từ đầu tháng 2. Danh sách này có thể thay đổi bất cứ lúc nào.

Xoá thuộc tính BluetoothDevice.uuids

Thuộc tính BluetoothDevice.uuids đang được xoá để đưa API Web Bluetooth phù hợp với thông số kỹ thuật hiện tại. Bạn có thể truy xuất tất cả dịch vụ GATT được phép bằng cách gọi device.getPrimaryServices().

Lỗi Chromium

Xoá phần tử tạo khoá

Kể từ Chrome 49, hành vi mặc định của <keygen> là trả về chuỗi trống, trừ phi bạn cấp quyền cho trang này. IE/Edge không hỗ trợ <keygen> và chưa cho biết tín hiệu công khai để hỗ trợ <keygen>. Firefox đã kiểm soát <keygen> bằng một cử chỉ của người dùng, nhưng công khai hỗ trợ việc xoá cử chỉ đó. Safari phân phối <keygen> và chưa bày tỏ quan điểm công khai về việc tiếp tục hỗ trợ. Với Chrome 57, phần tử này sẽ bị xoá.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Xoá API quản lý vùng đệm thời gian tài nguyên có tiền tố

Hai phương thức và một trình xử lý sự kiện, webkitClearResourceTimings(), webkitSetResourceTimingBufferSize()onwebkitresourcetimingbufferfull đã lỗi thời và dành riêng cho nhà cung cấp. Các phiên bản chuẩn của các API này đã được hỗ trợ kể từ Chrome 46 và các hàm có tiền tố cũng không còn được dùng nữa trong phiên bản đó. Các tính năng này ban đầu được triển khai trong WebKit, nhưng Safari chưa bật các tính năng này. Firefox, IE 10 trở lên và Edge chỉ có phiên bản không có tiền tố của API. Do đó, các phiên bản webkit sẽ bị xoá.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Xoá ServiceWorkerMessageEvent để sử dụng MessageEvent

Thông số kỹ thuật HTML đã mở rộng MessageEvent để cho phép ServiceWorker làm loại cho thuộc tính source. client.postMessage() và việc tạo sự kiện thông báo tuỳ chỉnh được thay đổi để sử dụng MessageEvent thay vì ServiceWorkerMessageEvent. Xoá ServiceWorkerMessageEvent.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Xoá các bí danh toàn cầu IndexedDB có tiền tố webkit

Điểm truy cập IndexedDB và hàm khởi tạo toàn cục được hiển thị bằng tiền tố webkit ở đâu đó trong Chrome 11. Các phiên bản không có tiền tố được thêm vào Chrome 24 và các phiên bản có tiền tố đã ngừng hoạt động trong Chrome 38. Các giao diện sau đây sẽ bị ảnh hưởng:

  • webkitIndexedDB (điểm truy cập chính)
  • webkitIDBKeyRange (hàm khởi tạo toàn cục không gọi được, nhưng có các phương thức tĩnh hữu ích)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (hàm khởi tạo toàn cục không gọi được)

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

WebAudio: Xoá AudioContext và OfflineAudioContext có tiền tố

Chrome đã hỗ trợ WebAudio kể từ giữa năm 2011, bao gồm cả AudioContext. OfflineAudioContext được thêm vào năm sau. Do thời gian hỗ trợ giao diện tiêu chuẩn và mục tiêu dài hạn của Google là xoá các tính năng có tiền tố, nên các phiên bản có tiền tố của các giao diện này đã ngừng hoạt động từ cuối năm 2014 và hiện đang bị xoá.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Ngừng sử dụng và xoá webkitCancelRequestAnimationFrame

Phương thức webkitCancelRequestAnimationFrame() là một API dành riêng cho nhà cung cấp, đã lỗi thời và cancelAnimationFrame() tiêu chuẩn đã được hỗ trợ trong Chromium từ lâu. Do đó, phiên bản webkit sẽ bị xoá.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Ngừng sử dụng kiểu khớp không phân biệt chữ hoa chữ thường cho thuộc tính usemap

Thuộc tính usemap trước đây được xác định là không phân biệt chữ hoa chữ thường. Rất tiếc, việc triển khai tính năng này khá phức tạp nên không có trình duyệt nào triển khai đúng cách. Nghiên cứu cho thấy rằng thuật toán phức tạp như vậy là không cần thiết, và thậm chí việc so khớp ASCII không phân biệt chữ hoa chữ thường cũng là không cần thiết.

Do đó, thông số kỹ thuật đã được cập nhật để áp dụng tính năng so khớp có phân biệt chữ hoa chữ thường. Hành vi cũ không còn được dùng nữa trong Chrome 57 và dự kiến sẽ bị xoá trong Chrome 58.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Ngừng sử dụng FileReaderSync trong trình chạy dịch vụ

Thông số kỹ thuật của Trình chạy dịch vụ luôn có ghi chú (không mang tính quy phạm) rằng "bất kỳ loại yêu cầu đồng bộ nào cũng không được bắt đầu bên trong trình chạy dịch vụ" để tránh chặn trình chạy dịch vụ. Việc chặn trình chạy dịch vụ sẽ chặn tất cả các yêu cầu mạng từ các trang được kiểm soát. Rất tiếc, API FileReaderSync đã có từ lâu trong worker dịch vụ.

Hiện tại, chỉ Firefox và Chrome hiển thị FileReaderSync trong worker dịch vụ. Firefox đã đồng ý trong cuộc thảo luận về thông số kỹ thuật rằng vấn đề này cần được khắc phục. Chúng tôi dự kiến sẽ xoá tính năng này trong Chrome 59.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Ngừng sử dụng phương thức gọi cũ cho HTMLEmbedElement và HTMLObjectElement

Việc một giao diện có phương thức gọi cũ có nghĩa là một thực thể có thể được gọi dưới dạng một hàm. Hiện tại, HTMLEmbedElementHTMLObjectElement hỗ trợ chức năng này. Khả năng này không còn được dùng nữa trong Chrome 57. Sau khi xoá, dự kiến là trong Chrome 58, lệnh gọi sẽ gửi một ngoại lệ.

Thay đổi này giúp Chrome phù hợp với các thay đổi gần đây về thông số kỹ thuật. Hành vi cũ không được hỗ trợ trong Edge hoặc Safari và đang được xoá khỏi Firefox.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Ngừng sử dụng RTCRtcpMuxPolicy của "negotiate"

rtcpMuxPolicy được Chrome sử dụng để chỉ định chính sách ưu tiên liên quan đến việc sử dụng tính năng truyền dẫn nhiều luồng RTP/RTCP. Trong Chrome 57, chúng tôi đã thay đổi rtcpMuxPolicy mặc định thành "yêu cầu" và không dùng "thương lượng" nữa vì những lý do sau:

  • RTCP không được kết hợp sử dụng thêm tài nguyên mạng.
  • Việc xoá "negotiate" sẽ giúp giao diện API đơn giản hơn, vì "RtpSender"/"RtpReceiver" sẽ chỉ có một phương thức truyền duy nhất.

Trong Chrome 57, tính năng "đàm phán" không còn được dùng nữa. Chúng tôi tin rằng đây là một thay đổi không gây lỗi vì người dùng sẽ nhận được thông báo ngừng sử dụng và vẫn có thể tạo RTCPeerConnection. Tính năng này sẽ bị xoá trong Chrome 63.

Ý định ngừng sử dụng | Lỗi Chromium

Ngừng hỗ trợ thông tin xác thực được nhúng trong các yêu cầu tài nguyên phụ

Việc mã hoá cứng thông tin xác thực vào các yêu cầu tài nguyên phụ sẽ gây ra vấn đề về bảo mật, vì trước đây, việc này đã cho phép tin tặc sử dụng phương thức tấn công brute-force để lấy thông tin xác thực. Những mối nguy hiểm này càng trở nên nghiêm trọng hơn đối với các yêu cầu tài nguyên phụ có thông tin xác thực truy cập vào các dải IP nội bộ (bộ định tuyến, v.v.). Do mức sử dụng thấp, việc đóng lỗ hổng bảo mật (nhỏ) này có vẻ khá hợp lý.

Nhà phát triển có thể nhúng các tài nguyên không yêu cầu xác thực cơ bản/tích hợp, thay vào đó, hãy dựa vào cookie và các cơ chế quản lý phiên khác.

Ý định xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium