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

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ả các thay đổi trong Chrome 52 (phiên bản thử nghiệm beta từ ngày 9 tháng 6). Danh sách này có thể thay đổi bất cứ lúc nào.

Loại bỏ thuật toán mật mã dựa trên DHE

Tóm tắt: Các thuật toán mật mã dựa trên DHE bị loại bỏ trong Chrome 53 (máy tính) vì không đủ để sử dụng trong thời gian dài. Máy chủ nên sử dụng ECDHE (nếu có) hoặc thuật toán mật mã RSA thuần tuý nếu không có.

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

Năm ngoái, chúng tôi Chrome kích thước nhóm Diffie-Hellman tối thiểu từ 512 bit đến 1024 bit; tuy nhiên, 1024 bit là không đủ về lâu dài. Các số liệu báo cáo rằng khoảng 95% kết nối DHE mà Chrome nhìn thấy đều sử dụng DHE 1024 bit. Điều này, kết hợp với cách thương lượng DHE trong TLS, khiến việc chuyển qua phiên bản 1024 bit trở nên khó khăn.

Mặc dù có thông số kỹ thuật nháp để khắc phục vấn đề này, nhưng bản nháp đó vẫn là bản nháp và yêu cầu thay đổi cả ứng dụng và máy chủ. Trong khi đó, ECDHE đã được triển khai rộng rãi. Máy chủ phải nâng cấp lên ECDHE nếu có. Nếu không, hãy nhớ bật bộ thuật toán mật mã RSA thuần tuý.

Chúng tôi không dùng thuật toán mật mã dựa trên DHE kể từ Chrome 51 nữa. Tính năng hỗ trợ sẽ bị loại bỏ khỏi máy tính trong Chrome 53.

Cảnh báo về việc ngừng sử dụng FileError

Tóm tắt: Theo dự kiến, giao diện FileError không còn được dùng nữa sẽ bị xoá trong Chrome 54. Thay thế các tham chiếu đến err.code bằng err.nameerr.message.

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

Phiên bản hiện tại của tiêu chuẩn API tệp không chứa giao diện FileError và chức năng hỗ trợ này đã bị ngừng sử dụng trong năm 2013. Trong Chrome 53, cảnh báo về việc ngừng sử dụng này sẽ được in vào bảng điều khiển Công cụ cho nhà phát triển:

Lỗi "FileError" hiện không còn được dùng nữa và sẽ bị xoá trong phiên bản 54. Vui lòng sử dụng thuộc tính "name" hoặc "message" của lỗi thay vì "code".

Điều này có tác động khác nhau trong các ngữ cảnh khác nhau.

  • FileReader.errorFileWriter.error sẽ là đối tượng DOMException thay vì đối tượng FileError.
  • Đối với lệnh gọi FileSystem không đồng bộ, ErrorCallback sẽ được chuyển FileError.ErrorCode thay vì FileError.
  • Đối với FileSystem đồng bộ, các lệnh gọi FileError.ErrorCode sẽ được gửi thay vì FileError.

Thay đổi này chỉ ảnh hưởng đến mã dựa trên việc so sánh trực tiếp mã của trường hợp lỗi (e.code) với các giá trị enum FileError (FileError.NOT_FOUND_ERR, v.v.). Mã kiểm thử với các hằng số được mã hoá cứng (ví dụ: e.code === 1) có thể không thành công do báo cáo lỗi không chính xác cho người dùng.

May mắn là các loại lỗi FileError, DOMErrorDOMException đều dùng chung các thuộc tính namemessage, cung cấp tên nhất quán cho các trường hợp lỗi (nói cách khác là e.name === "NotFoundError"). Mã phải sử dụng các thuộc tính đó vì chúng sẽ hoạt động trên các trình duyệt và tiếp tục hoạt động sau khi chính giao diện FileError đã bị xoá.

Việc xoá FileError dự kiến sẽ là Chrome 54.

Xoá thuộc tính kết quả cho <input type=search>

Tóm tắt: Thuộc tính results sẽ bị xoá vì không thuộc bất kỳ tiêu chuẩn nào và được triển khai không nhất quán trên các trình duyệt.

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

Giá trị results chỉ được triển khai trong webkit và hoạt động rất không nhất quán trên những giá trị được triển khai. Ví dụ: Chrome thêm biểu tượng phóng to vào hộp nhập, trong khi trên máy tính Safari, giá trị này kiểm soát số lượng tìm kiếm trước đó được hiển thị trong cửa sổ bật lên được hiển thị bằng cách nhấp vào biểu tượng kính lúp. Vì đây không phải là một phần của tiêu chuẩn nào đó nên định dạng này sẽ không được dùng nữa.

Nếu vẫn cần đưa biểu tượng tìm kiếm vào trường nhập dữ liệu, thì bạn sẽ phải thêm một số kiểu tuỳ chỉnh cho phần tử đó. Bạn có thể thực hiện việc này bằng cách thêm hình nền và chỉ định khoảng đệm bên trái cho trường nhập dữ liệu.

    input[type=search] {
      background: url(some-great-icon.png) no-repeat scroll 15px 15px;
      padding-left:30px;
    }
 ```   

This attribute has been deprecated since Chrome 51.