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

Liên khúc Joe
Joe Medley

Trong hầu hết mọi phiên bản Chrome, chúng tôi nhận thấy nhiều nội dung cập nhật và cải tiến đáng kể đối với sản phẩm, hiệu suất cũng như các khả năng của Nền tảng web. Bài viết này mô tả việc ngừng sử dụng và xoá khỏi Chrome 57 (đang trong giai đoạn thử nghiệm beta 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 sẽ bị xoá để mang API Bluetooth cho web 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ả các dịch vụ GATT được cho 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 trang này được cấp quyền. IE/Edge không hỗ trợ <keygen> và chưa chỉ ra các tín hiệu công khai để hỗ trợ <keygen>. Firefox đã kiểm soát <keygen> sau một cử chỉ của người dùng, nhưng công khai ủng hộ việc loại bỏ cử chỉ đó. Safari giao <keygen> và không bày tỏ quan điểm công khai về việc hỗ trợ liên tục. Với Chrome 57, phần tử này sẽ bị loại bỏ.

Ý đị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 tạo sẵn

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

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

Xoá ServiceWorkerMessageEvent và thay bằng việc sử dụng MessageEvent

Thông số HTML đã mở rộng MessageEvent để cho phép ServiceWorker dưới dạng một loại cho thuộc tính source. Thay đổi client.postMessage() và tính năng tạo sự kiện thông báo tuỳ chỉnh để 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 chung của IndexedDB có tiền tố webkit

Điểm truy cập IndexedDB và các hàm khởi tạo chung đã hiển thị 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ố không còn được dùng trong Chrome 38. Các giao diện sau bị ảnh hưởng:

  • webkitIndexedDB (điểm truy cập chính)
  • webkitIDBKeyRange (hàm khởi tạo chung 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 (các hàm khởi tạo chung không thể gọi)

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

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

Chrome đã hỗ trợ WebAudio từ giữa năm 2011, bao gồm cả AudioContext. OfflineAudioContext đã được thêm vào năm sau. Dựa trên thời lượng hỗ trợ giao diện chuẩn và mục tiêu dài hạn của Google về việc loại bỏ các tính năng có tiền tố, các phiên bản có tiền tố của các giao diện này đã ngừng hoạt động kể 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

Không dùng nữa và xoá webkitCancelRequestAnimationFrame

Phương thức webkitCancelRequestAnimationFrame() là một API lỗi thời, dành riêng cho nhà cung cấp 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 tính năng khớp không phân biệt chữ hoa chữ thường cho thuộc tính usemap

Trước đây, thuộc tính usemap được định nghĩa là không có chữ hoa chữ thường. Rất tiếc, việc triển khai tính năng này đủ phức tạp đến mức 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 không phân biệt chữ hoa chữ thường theo ASCII cũng không cần thiết.

Do đó, quy cách đã được cập nhật để áp dụng việc so khớp (có phân biệt chữ hoa chữ thường). Hành vi cũ không còn được dùng 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ó lưu ý (không bắt buộc) là "không được khởi tạo bất kỳ loại yêu cầu đồng bộ nào bên trong một trình chạy dịch vụ" để tránh chặn trình chạy dịch vụ này. Việc chặn trình chạy dịch vụ sẽ chặn tất cả yêu cầu mạng từ các trang được kiểm soát. Thật không may, API FileReaderSync đã có trong trình chạy dịch vụ từ lâu.

Hiện tại, chỉ Firefox và Chrome hiển thị FileReaderSync trong trình chạy dịch vụ. Trong cuộc thảo luận về thông số kỹ thuật, Firefox đã thống nhất rằng bạn sẽ khắc phục vấn đề này. Loại bỏ được dự kiến 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 HTMLEmbeddingElement và HTMLObjectElement

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. Trong Chrome 57, tính năng này không còn được dùng nữa. Sau khi xoá, dự kiến trong Chrome 58, thao tác gọi sẽ gửi một ngoại lệ.

Thay đổi này giúp Chrome phù hợp với những 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à sẽ bị 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 "thương lượng"

Chrome sử dụng rtcpMuxPolicy để chỉ định chính sách ưu tiên về việc sử dụng tính năng ghép kênh RTP/RTCP. Trong Chrome 57, chúng tôi đã thay đổi rtcpMuxPolicy mặc định thành "require" và ngừng sử dụng " "thương lượng" vì các lý do sau:

  • RTCP không kết hợp sử dụng tài nguyên mạng bổ sung.
  • Việc loại bỏ "thương lượng" sẽ giúp nền tảng API đơn giản hơn vì "RtpSender"/"RtpReceiver" sau đó sẽ chỉ có một công cụ truyền tải.

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

Ý định không dùng nữa | Lỗi Chromium

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

Xét về khía cạnh bảo mật, việc mã hoá cứng thông tin xác thực vào các yêu cầu về tài nguyên phụ là vấn đề, vì việc này cho phép tin tặc sử dụng thông tin xác thực trước đây. Những mối nguy hiểm này ngày càng nghiêm trọng đối với các yêu cầu tài nguyên phụ được xác thực truy cập vào các dải IP nội bộ (bộ định tuyến của bạ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/thông báo, thay vào đó 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