Mô tả
Sử dụng API chrome.privacy để kiểm soát việc sử dụng các tính năng trong Chrome có thể ảnh hưởng đến quyền riêng tư của người dùng. API này dựa vào nguyên mẫu ChromeSetting của API loại để lấy và đặt cấu hình của Chrome.
Quyền
privacyBạn phải khai báo quyền "quyền riêng tư" trong manifest của tiện ích để sử dụng API. Ví dụ:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Khái niệm và cách sử dụng
Việc đọc giá trị hiện tại của một chế độ cài đặt Chrome rất đơn giản. Trước tiên, bạn cần tìm thuộc tính mà bạn quan tâm, sau đó gọi get() trên đối tượng đó để truy xuất giá trị hiện tại và cấp độ kiểm soát của tiện ích. Ví dụ: để xác định xem tính năng tự động điền thẻ tín dụng của Chrome có được bật hay không, bạn sẽ viết:
browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.value) {
console.log('Autofill is on!');
} else {
console.log('Autofill is off!');
}
});
Việc thay đổi giá trị của một chế độ cài đặt sẽ phức tạp hơn một chút, vì trước tiên, bạn phải xác minh rằng tiện ích của mình có thể kiểm soát chế độ cài đặt đó. Người dùng sẽ không thấy bất kỳ thay đổi nào đối với chế độ cài đặt của họ nếu
tiện ích của bạn bật/tắt một chế độ cài đặt bị khoá ở một giá trị cụ thể theo chính sách doanh nghiệp
(levelOfControl sẽ được đặt thành "not_controllable") hoặc nếu một tiện ích khác đang kiểm soát
giá trị (levelOfControl sẽ được đặt thành "controlled_by_other_extensions"). Lệnh gọi set() sẽ thành công, nhưng chế độ cài đặt sẽ bị ghi đè ngay lập tức. Vì điều này có thể gây nhầm lẫn, bạn nên cảnh báo người dùng khi chế độ cài đặt mà họ chọn không được áp dụng trên thực tế.
Điều này có nghĩa là bạn nên sử dụng phương thức get() để xác định cấp truy cập, sau đó chỉ gọi set() nếu tiện ích của bạn có thể kiểm soát chế độ cài đặt (trên thực tế, nếu tiện ích của bạn không thể kiểm soát chế độ cài đặt, thì bạn nên tắt tính năng này để giảm sự nhầm lẫn cho người dùng):
browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
browser.privacy.services.autofillCreditCardEnabled.set({ value: true }, function() {
if (browser.runtime.lastError === undefined) {
console.log("Hooray, it worked!");
} else {
console.log("Sadness!", browser.runtime.lastError);
}
});
}
});
Nếu bạn quan tâm đến các thay đổi đối với giá trị của một chế độ cài đặt, hãy thêm trình nghe vào sự kiện onChange của chế độ cài đặt đó. Trong số các mục đích sử dụng khác, việc này sẽ cho phép bạn cảnh báo người dùng nếu một tiện ích được cài đặt gần đây hơn nắm quyền kiểm soát một chế độ cài đặt hoặc nếu chính sách doanh nghiệp ghi đè quyền kiểm soát của bạn. Để theo dõi các thay đổi đối với trạng thái tự động điền thẻ tín dụng, bạn có thể dùng mã sau:
browser.privacy.services.autofillCreditCardEnabled.onChange.addListener(
function (details) {
// The new value is stored in `details.value`, the new level of control
// in `details.levelOfControl`, and `details.incognitoSpecific` will be
// `true` if the value is specific to Incognito mode.
}
);
Ví dụ
Để dùng thử API này, hãy cài đặt ví dụ về API quyền riêng tư từ kho lưu trữ chrome-extension-samples.
Loại
AutofillBlockedType
Danh mục dữ liệu Tự động điền.
Enum
"contact_info"
"payments"
"identity_docs"
"du lịch"
"all"
IPHandlingPolicy
Chính sách xử lý IP của WebRTC.
Enum
"default"
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
Thuộc tính
network
Các chế độ cài đặt ảnh hưởng đến cách Chrome xử lý các kết nối mạng nói chung.
Loại
đối tượng
Thuộc tính
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Nếu bạn bật chế độ này, Chrome sẽ cố gắng tăng tốc trải nghiệm duyệt web của bạn bằng cách phân giải trước các mục DNS, chủ động mở kết nối TCP và SSL với máy chủ, đồng thời tải trước các trang. Việc tắt lựa chọn ưu tiên này sẽ ghi đè khả năng tải suy đoán nội dung của chủ sở hữu trang web (chẳng hạn như tìm nạp trước hoặc kết xuất trước thông qua Speculation Rules API). Chế độ này không ảnh hưởng đến các hoạt động kết nối trước hoặc tìm nạp trước DNS do trang web khởi tạo. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true. -
webRTCIPHandlingPolicyChrome 48 trở lên browser.* kể từ Chrome 148
Cho phép người dùng chỉ định sự đánh đổi giữa hiệu suất và quyền riêng tư của nội dung nghe nhìn, điều này ảnh hưởng đến cách định tuyến lưu lượng truy cập WebRTC và lượng thông tin địa chỉ cục bộ được hiển thị. Giá trị của lựa chọn ưu tiên này thuộc loại IPHandlingPolicy, mặc định là
default.
services
Các chế độ cài đặt bật hoặc tắt những tính năng cần có dịch vụ mạng của bên thứ ba do Google và nhà cung cấp dịch vụ tìm kiếm mặc định của bạn cung cấp.
Loại
đối tượng
Thuộc tính
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
Nếu bạn bật chính sách này, Chrome sẽ sử dụng một dịch vụ web để giúp giải quyết lỗi điều hướng. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 trở lên browser.* kể từ Chrome 148Nếu bạn bật chính sách này, Chrome sẽ đề xuất tự động điền địa chỉ và dữ liệu biểu mẫu khác. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 trở lên browser.* kể từ Chrome 148Nếu bạn bật tính năng này, Chrome sẽ đề xuất tự động điền vào biểu mẫu thẻ tín dụng. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true. -
autofillEnabled
types.ChromeSetting<boolean>
Ngừng sử dụng kể từ Chrome 70Vui lòng sử dụng privacy.services.autofillAddressEnabled và privacy.services.autofillCreditCardEnabled. Thuộc tính này vẫn được giữ lại để đảm bảo khả năng tương thích ngược trong bản phát hành này và sẽ bị xoá trong tương lai.
Nếu bạn bật, Chrome sẽ đề xuất tự động điền vào biểu mẫu. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Nếu bạn bật chế độ này, trình quản lý mật khẩu sẽ hỏi xem bạn có muốn lưu mật khẩu hay không. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Nếu bạn bật tính năng này, Chrome sẽ cố gắng hết sức để bảo vệ bạn khỏi hành vi lừa đảo và phần mềm độc hại. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Nếu bạn bật chế độ này, Chrome sẽ gửi thêm thông tin cho Google khi tính năng Duyệt web an toàn chặn một trang, chẳng hạn như nội dung của trang bị chặn. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
false. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Nếu bạn bật chế độ này, Chrome sẽ gửi văn bản bạn nhập vào thanh địa chỉ đến công cụ tìm kiếm mặc định của bạn. Công cụ này sẽ đưa ra cụm từ gợi ý về trang web và nội dung tìm kiếm có khả năng hoàn thành nội dung bạn đã nhập. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Nếu bạn bật chính sách này, Chrome sẽ sử dụng một dịch vụ web để giúp sửa lỗi chính tả. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Nếu bạn bật tính năng này, Chrome sẽ đề xuất dịch những trang không phải bằng ngôn ngữ bạn đọc. Giá trị của lựa chọn ưu tiên này là một boolean, mặc định là
true.
websites
Các chế độ cài đặt xác định thông tin mà Chrome cung cấp cho các trang web.
Loại
đối tượng
Thuộc tính
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Nếu bạn tắt, Attribution Reporting API và Private Aggregation API sẽ bị vô hiệu hoá. Giá trị của lựa chọn ưu tiên này thuộc loại boolean và giá trị mặc định là
true. Tiện ích chỉ có thể tắt các API này bằng cách đặt giá trị thànhfalse. Nếu bạn cố gắng đặt các API này thànhtrue, thì hệ thống sẽ báo lỗi. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 trở lên trình duyệt.* kể từ Chrome 148Nếu bạn bật, Chrome sẽ gửi tiêu đề "Không theo dõi" (
DNT: 1) cùng với các yêu cầu của bạn. Giá trị của lựa chọn ưu tiên này thuộc loại boolean và giá trị mặc định làfalse. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Nếu bạn tắt, Fledge API sẽ bị vô hiệu hoá. Giá trị của lựa chọn ưu tiên này thuộc loại boolean và giá trị mặc định là
true. Tiện ích chỉ có thể tắt API này bằng cách đặt giá trị thànhfalse. Nếu bạn cố gắng đặt API này thànhtrue, thì hệ thống sẽ báo lỗi. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Nếu bạn bật, Chrome sẽ gửi ping kiểm tra khi một trang web yêu cầu (
<a ping>). Giá trị của lựa chọn ưu tiên này thuộc loại boolean và giá trị mặc định làtrue. -
protectedContentEnabled
types.ChromeSetting<boolean>
Chỉ có trên Windows và ChromeOS: Nếu được bật, Chrome sẽ cung cấp một mã nhận dạng duy nhất cho các trình bổ trợ để chạy nội dung được bảo vệ. Giá trị của lựa chọn ưu tiên này thuộc loại boolean và giá trị mặc định là
true. -
referrersEnabled
types.ChromeSetting<boolean>
Nếu bạn bật chế độ này, Chrome sẽ gửi tiêu đề
referercùng với các yêu cầu của bạn. Có, tên của lựa chọn ưu tiên này không khớp với tiêu đề bị viết sai chính tả. Không, chúng tôi sẽ không thay đổi. Giá trị của lựa chọn ưu tiên này thuộc loại boolean và giá trị mặc định làtrue. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Nếu bạn tắt chính sách này, Chrome sẽ chặn các trang web bên thứ ba đặt cookie. Giá trị của lựa chọn ưu tiên này thuộc loại boolean và giá trị mặc định là
true. Các tiện ích có thể không bật được API này ở chế độ ẩn danh. Ở chế độ ẩn danh, cookie của bên thứ ba sẽ bị chặn và bạn chỉ có thể cho phép ở cấp trang web. Nếu bạn cố gắng đặt API này thành true ở chế độ Ẩn danh, thì API này sẽ gửi thông báo lỗi.Lưu ý: Các trang web riêng lẻ vẫn có thể truy cập vào cookie của bên thứ ba khi API này trả về
false, nếu các trang web đó có trường hợp miễn trừ hợp lệ hoặc sử dụng Storage Access API. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Nếu bạn tắt, Topics API sẽ bị vô hiệu hoá. Giá trị của lựa chọn ưu tiên này thuộc loại boolean và giá trị mặc định là
true. Tiện ích chỉ có thể tắt API này bằng cách đặt giá trị thànhfalse. Nếu bạn cố gắng đặt API này thànhtrue, thì hệ thống sẽ báo lỗi.