Ngừng sử dụng và xoá bỏ trong Chrome 58

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 58, phiên bản đang trong giai đoạn thử nghiệm từ ngày 16 tháng 3. Danh sách này có thể thay đổi bất cứ lúc nào.

Chuột trên Android ngừng kích hoạt TouchEvents

Cho đến Chrome 57, các sự kiện chuột cấp thấp của Android trong Chrome chủ yếu tuân theo một đường dẫn sự kiện được thiết kế cho các lượt tương tác chạm. Ví dụ: một chuyển động kéo chuột xảy ra trong khi nhấn nút chuột sẽ tạo ra MotionEvents, được phân phối thông qua View.onTouchEvent.

Tuy nhiên, vì các sự kiện chạm không thể hỗ trợ thao tác di chuột, nên thao tác di chuột khi di chuột theo một đường dẫn riêng. Thiết kế này có nhiều tác dụng phụ, bao gồm cả việc tương tác bằng chuột kích hoạt TouchEvents, tất cả các nút chuột xuất hiện dưới dạng nút chuột tráiMouseEvents bị TouchEvents chặn.

Kể từ Chrome 58, chuột trên Android M trở lên sẽ:

  • Không còn kích hoạt TouchEvents nữa.
  • Kích hoạt một trình tự nhất quán của MouseEvents bằng các nút và các thuộc tính khác phù hợp.

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

Xoá tính năng so 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 trong Chrome 57 và hiện đã bị xoá.

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

Xoá các thao tác điều hướng khung trên cùng do nội dung khởi tạo đến URL dữ liệu

Do người dùng trình duyệt không chuyên không quen thuộc với các giao thức này, nên chúng tôi ngày càng thấy nhiều trường hợp giao thức data: được dùng trong các cuộc tấn công giả mạo và lừa đảo. Để ngăn chặn điều này, chúng tôi sẽ chặn các trang web tải URL data: trong khung trên cùng. Điều này áp dụng cho các thẻ <a>, window.open, window.location và các cơ chế tương tự. Lược đồ data: sẽ vẫn hoạt động đối với các tài nguyên được tải bên dưới theo trang.

Tính năng này sẽ bị xoá trong Chrome 60.

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

Xoá tên không dùng nữa cho các thuộc tính đường dẫn chuyển động

Các thuộc tính CSS của đường dẫn chuyển động cho phép tác giả tạo ảnh động cho bất kỳ đối tượng đồ hoạ nào dọc theo đường dẫn do tác giả chỉ định. Để tuân thủ thông số kỹ thuật, một số thuộc tính đã được triển khai trong Chrome 45. Tên của các thuộc tính này đã được thay đổi trong thông số kỹ thuật vào giữa năm 2016. Chrome đã triển khai các tên mới trong Chrome 55 và Chrome 56. Chúng tôi cũng đã triển khai cảnh báo về việc ngừng sử dụng Console.

Trong Chrome 58, tên thuộc tính cũ sẽ bị xoá. Dưới đây là các tài sản bị ảnh hưởng và tên mới của các tài sản đó.

Tài sản đã bị xoá Tên hiện tại
đường chuyển động offset-path
độ lệch chuyển động offset-distance
chuyển động-xoay offset-rotate
chuyển động độ lệch

Ý định xoá

Xoá EME khỏi ngữ cảnh không an toàn

Một số cách sử dụng Tiện ích nội dung đa phương tiện được mã hoá (EME) cho thấy các phương thức triển khai quản lý quyền kỹ thuật số không phải là mã nguồn mở, liên quan đến quyền truy cập vào giá trị nhận dạng duy nhất ổn định và/hoặc chạy không có hộp cát hoặc có quyền truy cập đặc quyền. Các trang web được hiển thị qua HTTP không an toàn sẽ có nguy cơ bảo mật cao hơn vì bất kỳ ai trên kênh đều có thể tấn công các trang web đó. Ngoài ra, khi yêu cầu người dùng đồng ý, kẻ tấn công có thể khai thác việc người dùng liên tục chấp nhận một trang web HTTP không an toàn.

Tính năng hỗ trợ ngữ cảnh không an toàn đã bị xoá khỏi thông số kỹ thuật EME phiên bản 1 và không được hỗ trợ trong đề xuất đề xuất cũng như không được dự kiến trong đề xuất cuối cùng tiếp theo. sẽ không có trong đề xuất sắp tới hoặc đề xuất cuối cùng tiếp theo. API này đã hiển thị thông báo ngừng sử dụng trên các nguồn gốc không an toàn kể từ Chrome 44 (tháng 5 năm 2015). Trong Chrome 58, tính năng này hiện đã bị xoá. Thay đổi này là một phần trong nỗ lực lớn hơn của chúng tôi nhằm loại bỏ các tính năng mạnh mẽ khỏi các nguồn không an toàn.

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

Xoá 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. Kể từ 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

Xoá các thuật toán mã hoá ChaCha20-Poly1305 trước tiêu chuẩn

Năm 2013, Chrome 31 đã triển khai các bộ mật mã TLS mới dựa trên thuật toán ChaCha20 và Poly1305 của Giáo sư Dan Bernstein. Sau đó, các tiêu chuẩn này được chuẩn hoá, với một số điều chỉnh nhỏ, tại IETF dưới dạng RFC 7539RFC 7905. Chúng tôi đã phát hành biến thể được chuẩn hoá vào đầu năm 2016 với Chrome 49. Chúng tôi hiện đang xoá các biến thể trước tiêu chuẩn.

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

Xoá tính năng hỗ trợ so khớp commonName trong chứng chỉ

RFC 2818 mô tả hai phương thức so khớp tên miền với chứng chỉ: sử dụng các tên có sẵn trong tiện ích subjectAlternativeName hoặc nếu không có tiện ích SAN, hãy quay lại commonName. Phương thức dự phòng cho commonName đã ngừng hoạt động trong RFC 2818 (xuất bản năm 2000), nhưng vẫn hỗ trợ một số ứng dụng TLS, thường là không chính xác.

Việc sử dụng các trường subjectAlternativeName giúp bạn biết rõ liệu một chứng chỉ có thể hiện mối liên kết với địa chỉ IP hay tên miền hay không, đồng thời được xác định đầy đủ về khả năng tương tác với các quy tắc ràng buộc về tên. Tuy nhiên, commonName không rõ ràng và do đó, việc hỗ trợ commonName đã trở thành nguồn lỗi bảo mật trong Chrome, các thư viện mà Chrome sử dụng và trong hệ sinh thái TLS nói chung.

Nguy cơ tương thích khi xoá commonName là thấp. RFC 2818 đã ngừng sử dụng tính năng này trong gần hai thập kỷ và các yêu cầu cơ sở (mà tất cả các tổ chức phát hành chứng chỉ được tin cậy công khai phải tuân thủ) đã yêu cầu phải có subjectAltName kể từ năm 2012. Firefox đã yêu cầu subjectAltName cho mọi chứng chỉ mới được phát hành và được tin cậy công khai kể từ Firefox 48.

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

Các thành phần giao diện regions, addRegion()removeRegion() đã bị xoá khỏi thông số kỹ thuật WebVTT và bị xoá trong Chrome 58 để tuân thủ thông số kỹ thuật mới nhất. Chúng tôi dự kiến việc xoá này sẽ không ảnh hưởng nhiều vì tính năng này chưa bao giờ được bật theo mặc định (nghĩa là tính năng này nằm sau một cờ). Những người cần một giải pháp thay thế có thể sử dụng thuộc tính VTTCue.region đang được thêm vào Chrome 58.

Chromestatus Tracker | Lỗi Chromium

WebAudio: xoá giao diện AudioSourceNode

Giao diện AudioSourceNode không thuộc quy cách Âm thanh trên web, không thể tạo và không có thuộc tính, vì vậy về cơ bản, giao diện này không có chức năng nào mà nhà phát triển có thể truy cập. Do đó, video đó đang bị gỡ bỏ.

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

Xoá thuộc tính chung webkitdropzone

Thuộc tính chung dropzone được giới thiệu trong quy cách kéo và thả HTML5 dưới dạng một phương thức khai báo để chỉ định ý định của một phần tử HTML về việc trở thành mục tiêu của thao tác kéo và thả, các loại nội dung có thể được thả vào phần tử và thao tác kéo và thả (sao chép/di chuyển/liên kết).

Thuộc tính này không thu hút được sự quan tâm của các nhà cung cấp trình duyệt. Blink và WebKit chỉ triển khai một dạng tiền tố của thuộc tính, webkitdropzone. Vì thuộc tính dropzone đã bị xoá khỏi thông số kỹ thuật vào đầu tháng 3 năm 2017 nên phiên bản có tiền tố sẽ bị xoá khỏi Chrome.

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

Ngừng sử dụng thông báo không an toàn

Thông báo là một tính năng mạnh mẽ vì cho phép các trang web gọi giao diện người dùng hệ thống để truyền chính thông tin riêng tư hoặc tín hiệu cho biết thông tin riêng tư đã thay đổi. Kẻ tấn công có thể đánh hơi hoặc đánh cắp mọi thông tin được gửi thông qua thông báo qua một kết nối không an toàn. Tính năng đẩy web yêu cầu một nguồn gốc bảo mật, vì vậy, thay đổi này sẽ điều chỉnh thông báo không đẩy với thông báo đẩy. Thay đổi này là một phần trong nỗ lực lớn hơn của chúng tôi nhằm loại bỏ các tính năng mạnh mẽ khỏi các nguồn không an toàn.

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

Ngừng sử dụng thông báo từ các iframe không an toàn

Yêu cầu cấp quyền từ iframe có thể gây nhầm lẫn cho người dùng vì khó phân biệt giữa nguồn gốc của trang chứa và nguồn gốc của iframe đang đưa ra yêu cầu. Khi phạm vi yêu cầu không rõ ràng, người dùng sẽ khó đánh giá xem có cấp hay từ chối quyền.

Việc không cho phép thông báo trong iframe cũng sẽ điều chỉnh các yêu cầu về quyền thông báo cho phù hợp với thông báo đẩy, giúp nhà phát triển dễ dàng hơn.

Những nhà phát triển cần chức năng này có thể mở một cửa sổ mới để yêu cầu quyền thông báo.

Tính năng này sẽ bị xoá trong Chrome 62.

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

Xoá indexedDB.webkitGetDatabaseNames()

Chúng tôi đã thêm tính năng này khi Indexed DB còn khá mới trong Chrome và việc thêm tiền tố đang rất thịnh hành. API này trả về một danh sách tên cơ sở dữ liệu hiện có trong một nguồn gốc một cách không đồng bộ, điều này có vẻ hợp lý.

Rất tiếc, thiết kế này có khiếm khuyết, ở chỗ kết quả có thể đã lỗi thời ngay khi được trả về, vì vậy, bạn chỉ có thể sử dụng thiết kế này để ghi nhật ký chứ không phải logic ứng dụng nghiêm túc. Vấn đề trên github theo dõi/liên kết đến nội dung thảo luận trước đó về các giải pháp thay thế, đòi hỏi một phương pháp khác. Mặc dù các nhà phát triển thỉnh thoảng quan tâm đến vấn đề này, nhưng do thiếu tiến trình trên nhiều trình duyệt, nên các tác giả thư viện đã giải quyết vấn đề này.

Nhà phát triển cần chức năng này cần phải phát triển giải pháp của riêng mình. Ví dụ: các thư viện như Dexie.js sử dụng một bảng toàn cục, bản thân bảng này cũng là một cơ sở dữ liệu khác để theo dõi tên của các cơ sở dữ liệu.

Tính năng này bị xoá trong Chrome 60.

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