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

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 58 (đang trong giai đoạn thử nghiệm beta kể 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 đi theo một đường dẫn sự kiện được thiết kế cho các tương tác chạm. Ví dụ: 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ợ di chuột, nên thao tác di chuột sẽ đi theo một đường dẫn riêng. Thiết kế này có nhiều tác động phụ, bao gồm cả hoạt động tương tác với chuột kích hoạt TouchEvents, tất cả các nút trên 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 chuỗi MouseEvents nhất quán bằng các nút thích hợp và các thuộc tính khác.

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

Xóa đối sánh 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 bạn không cần sử dụng một thuật toán phức tạp như vậy, 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 dùng trong Chrome 57 và hiện đã bị loại bỏ.

Ý đị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 họ chưa quen thuộc với những người dùng trình duyệt không liên quan đến kỹ thuật, nên chúng tôi ngày càng nhận thấy 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: ở khung trên cùng. Điều này áp dụng cho 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 một trang tải ở bên dưới.

Tính năng này sẽ bị loại bỏ trong Chrome 60.

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

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

Thuộc tính CSS đường dẫn chuyển động cho phép tác giả tạo ảnh động bất kỳ đối tượng đồ hoạ nào dọc theo đường dẫn do tác giả chỉ định. Để tuân thủ quy cách, 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 quy cách vào giữa năm 2016. Chrome đã triển khai tên mới trong Chrome 55 và Chrome 56. Các cảnh báo về việc ngừng sử dụng bảng điều khiển cũng đã được triển khai.

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

Thuộc tính đã xoá Tên hiện tại
đường-chuyển-động đường dẫn bù trừ
phần bù trừ chuyển động khoảng cách bù trừ
xoay-chuyển-động xoay bù trừ
chuyển động bù trừ

Ý định xoá

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

Một số trường hợp sử dụng Tiện ích nội dung nghe nhìn đã 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à nguồn mở, liên quan đến quyền truy cập vào các giá trị nhận dạng duy nhất ổn định và/hoặc chạy không ở chế độ hộp cát hoặc có quyền truy cập đặc quyền. Rủi ro bảo mật gia tăng đối với các trang web bị tiết lộ qua HTTP không an toàn vì bất kỳ ai trên kênh cũng có thể tấn công các trang web đó. Ngoài ra, khi cần có sự đồng ý của người dùng, sự chấp nhận vẫn tồn tại đối với một trang web HTTP không an toàn có thể bị kẻ tấn công khai thác.

Chế độ hỗ trợ cho các bối cảnh không an toàn đã bị loại bỏ khỏi thông số kỹ thuật EME phiên bản 1 và không được hỗ trợ trong đề xuất được đề xuất cũng như không được dự đoán trong bản chính thức tiếp theo. Đề xuất này sẽ không nằm trong đề xuất được đề xuất sắp tới hoặc đề xuất cuối cùng tiếp theo. API đã hiển thị thông báo ngừng sử dụng đối với các nguồn gốc không an toàn kể từ Chrome 44 (tháng 5 năm 2015). Trong Chrome 58, API này hiện đã bị loại bỏ. 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 xoá các tính năng mạnh mẽ khỏi các nguồn gốc 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 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. Kể từ Chrome 58, lệnh gọi sẽ gửi ra 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

Xóa mật mã ChaCha20-Poly1305 chuẩn trước

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

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

Xoá tính năng hỗ trợ khớp với 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 tên có sẵn trong tiện ích subjectAlternativeName hoặc quay lại sử dụng commonName trong trường hợp không có tiện ích SAN. Tính năng dự phòng cho commonName đã ngừng hoạt động trong RFC 2818 (phát hành năm 2000), nhưng tính năng hỗ trợ vẫn được duy trì trong 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 sẽ giúp bạn hiểu rõ việc chứng chỉ đang thể hiện liên kết với địa chỉ IP hay tên miền, đồng thời được xác định đầy đủ về tương tác với Quy tắc ràng buộc tên. Tuy nhiên, commonName không rõ ràng. Do đó, hoạt động hỗ trợ cho lớp này trở thành nguồn lỗi bảo mật trong Chrome, các thư viện mà ứng dụng này sử dụng, cũng như 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 định dạng này trong gần hai thập kỷ qua và các yêu cầu về cơ sở (mà tất cả các tổ chức phát hành chứng chỉ công khai đáng tin cậy phải tuân thủ) bắt buộc phải có subjectAltName kể từ năm 2012. Firefox đã yêu cầu subjectAltName cho mọi chứng chỉ đáng tin cậy công khai mới được phát hành kể từ Firefox 48.

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

Các phần tử 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 không bao giờ được bật theo mặc định (nghĩa là tính năng này sau một cờ). Những người cần có giải pháp thay thế có thể sử dụng thuộc tính VTTCue.region sẽ được thêm vào Chrome 58.

Trình theo dõi Chromestatus | Lỗi Chromium

WebAudio: xoá giao diện AudioSourceNode

Giao diện AudioSourceNode không thuộc thông số kỹ thuật về âm thanh web, không thể tạo và không có thuộc tính nào nên về cơ bản không có chức năng mà nhà phát triển có thể truy cập. Do đó, nội dung này đang bị xoá.

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

Xoá thuộc tính toàn cầu 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 phương thức khai báo để chỉ định trạng thái sẵn sàng của phần tử HTML làm mục tiêu của thao tác kéo và thả, 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ự chú ý giữa các nhà cung cấp trình duyệt. Blink và STDEV chỉ triển khai dạng tiền tố của thuộc tính, webkitdropzone. Vì thuộc tính dropzone đã bị xoá khỏi quy cách 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ì chúng cho phép các trang web gọi giao diện người dùng hệ thống để tự truyền thông tin riêng tư hoặc tín hiệu rằng thông tin riêng tư đã thay đổi. Kẻ tấn công có thể nghe trộm hoặc lấy cắp bất kỳ thông tin nào được gửi qua thông báo trong một kết nối không an toàn. Thông báo đẩy trên web yêu cầu một nguồn gốc bảo mật. Vì vậy, thay đổi này sẽ thống nhất 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 xoá các tính năng mạnh mẽ khỏi các nguồn gốc 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

Các yêu cầu cấp quyền từ iframe có thể khiến người dùng nhầm lẫn vì khó phân biệt giữa nguồn của trang chứa và nguồn của iframe đư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á liệu nên cấp hay từ chối cấp 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 gửi thông báo với thông báo đẩy, giảm bớt sự phiền hà cho nhà phát triển.

Các 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 gửi thông báo.

Tính năng xoá có trong Chrome 62.

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

Xoá indexDB.webkitGetDatabaseNames()

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

Thật không may, thiết kế có thiếu sót, trong đó kết quả có thể lỗi thời ngay khi được trả về, vì vậy, công cụ này thực sự chỉ có thể được dùng để ghi nhật ký, chứ không phải logic ứng dụng nghiêm trọng. Vấn đề về github theo dõi/liên kết đến nội dung thảo luận trước đó về các phương án thay thế (yêu cầu một phương pháp khác). Mặc dù ngày càng nhận được nhiều sự quan tâm của các nhà phát triển, nhưng do thiếu tiến trình trên nhiều trình duyệt, vấn đề này đã được các tác giả thư viện giải quyết.

Các nhà phát triển cần chức năng này cần tự 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 bảng chung. Bảng này chính là một cơ sở dữ liệu khác để theo dõi tên của cơ sở dữ liệu.

Tính năng này sẽ bị loại bỏ trong Chrome 60.

Ý định không dùng nữa | Trình theo dõi trạng thái Chrome | Lỗi Chromium