Post

[Firefox Awesome] Các add-on hay ho

[Firefox Awesome] Các add-on hay ho

Linh vật của công ty là một khủng long (Mozilla), biểu tượng thì có vẻ là một con cáo (fire fox), nhưng thực chất lại là gấu trúc (red panda), và sử dụng engine là một con tắc kè (gecko)

uBlock Origin (uBO) - Chặn quảng cáo, tăng cường bảo mật, riêng tư1

Đây là add-on chặn quảng cáo đạt tới mức độ chân - thiện - mỹ với thuật toán Regex được tối ưu cho tốc độ và thuật toán nhúng CSS để ẩn nội dụng được chau chuốt, đó là lý do tại sao add-on này tốt hơn nhiều lần Adblock Plus với thuật toán tệ hơn cho hiệu năng tệ hơn.

Với người dùng Việt Nam thì tất nhiên sau khi cài xong uBlock các bạn vào Dashboard rồi kéo xuống dưới tìm ABPVN rồi bật lên để chặn quảng cáo Việt Nam hiệu quả.

AdNauseam - uBO nhưng biết click quảng cáo

Link: https://addons.mozilla.org/en-US/firefox/addon/adnauseam/

Vẫn là uBO nhưng có màu xanh-đen

AdNauseum hỗ trợ tính năng bấm quảng cáo ẩn
Đánh lạc hướng các hệ thống quảng cáo theo dõi
Giúp ban phát tiền bạc cho các nhà phát triển web có ích, làm ăn đàng hoàng mà vẫn chặn quảng cáo để không bị làm phiền.
AdNauseum gửi 1 HTTP request đến đường dẫn quảng cáo, “giống như” 1 lần click
Và AdNauseum bị Google xóa khỏi Chrome Web Store vào 01/01/2017 với lý do rất củ chuối là ““Tiện ích mở rộng phải có mục đích duy nhất rõ ràng đối với người dùng…”
1
“An extension should have a single purpose that is clear to users…”

Xem thêm ở đây: https://adnauseam.io/free-adnauseam.html

“Mục tiêu cuối cùng” của AdNauseam là gì?
Dữ liệu gây nhầm lẫn khiến nhà quảng cáo trở nên vô dụng và buộc họ phải phản ứng? Đúng vậy, một mục tiêu của AdNauseam là bảo vệ người dùng khỏi các hành vi vi phạm quyền riêng tư và các tác hại khác có thể xảy ra trực tiếp hoặc gián tiếp từ việc theo dõi mà họ không đồng ý. Một mục tiêu khác là cung cấp phương tiện để người dùng cho phép các nhà quảng cáo biết rằng họ cho rằng hệ thống như vậy không phù hợp. Vì vậy, có, chúng tôi mong muốn các nhà quảng cáo phản hồi bằng các lựa chọn thay thế mang tính xây dựng tôn trọng giá trị và sở thích của người dùng, nhưng chúng tôi không nín thở – có thể cần phải phát triển những cách rất khác nhau để hỗ trợ nội dung trực tuyến. Nhưng mục tiêu cuối cùng thực sự của AdNauseam là làm cho phần mềm như AdNauseam trở nên không cần thiết.

“But the real end goal of AdNauseam is to make software like AdNauseam unnecessary.”

Các bộ lọc đáng dùng không lỗi cho uBlock23

1
2
3
4
5
6
7
8
9
https://raw.githubusercontent.com/ethan-xd/ethan-xd.github.io/master/fb.txt
https://gitlab.com/magnolia1234/bypass-paywalls-clean-filters/-/raw/main/bpc-paywall-filter.txt
https://gitlab.com/DandelionSprout/adfilt/-/raw/master/LegitimateURLShortener.txt
https://raw.githubusercontent.com/quenhus/uBlock-Origin-dev-filter/main/dist/all_search_engines/global.txt
https://github.com/stephenhawk8054/PrivacyExtended
https://github.com/DandelionSprout/adfilt/blob/master/BrowseWebsitesWithoutLoggingIn.txt
https://github.com/liamengland1/miscfilters/blob/master/antipaywall.txt
https://github.com/yokoffing/filterlists/blob/main/annoyance_list.txt
https://raw.githubusercontent.com/nmtrung/FMSF-2.0/master/fmsf_2.0.txt

Thông tin chi tiết

Cách chặn các tên miền mới tạo (thường là lừa bịp, virus) bằng uBlock4

Link: https://virtualfabric.com/services/free-online-security/free-online-security-downloads/

NextDNS có cái tính năng chặn tên miền mới (NRD) rất hay, đa phần các tên miền mới đều là lừa đảo, virus, chặn tụi nó đi giúp tránh được rất nhiều tai họa. Nhưng mà NextDNS thì miễn phí cũng chỉ có giới hạn.

Có mấy cái list tên miền mới tạo trong 32 ngày và 7 ngày khá hay, có thể add vào uBO. Và list này là một list dạng tính năng, không khiến trang dùng anti-adblock để phát hiện và quấy rối người dùng như việc thêm một lô một lốc các list phục vụ mục đích chặn quảng cáo.

1
2
https://nocdn.nrd-list.com/1/nrd-list-32-days.txt
https://nocdn.nrd-list.com/1/nrd-list-7-days.txt

Giao diện uBO

Cái list 7 ngày nặng 13.6MB dài 700k dòng, cái list 32 ngày nặng 49.5MB dài 3 triệu dòng: Nên là chỉ dùng 1 trong 2, mà đã tốn công dùng thì dùng luôn list 32 ngày. Mặc định uBlock cứ 7 tiếng cập nhập filter một lần5, thêm vào là xong chả cần làm gì thêm nữa.

Bọn này có có mấy cái list cho đủ các thể loại pihole, adguard, dnscrypt, yogadns, adaway,dnsmasq, unbound…) và ti tỉ cái khác để thử

Cơ bản cách sử dụng Dynamic Filtering (thay thế NoScript Security Suite) 67

Mở uBO > Settings > đánh dấu I am an advance user

Mở ra bảng bên trái bằng cách bấm More liên tục

Giao diện chính sẽ có 3 cột
Cột 1: Đối tượng lọc (bao gồm kiểu resource, hostname…)
Cột 2: Global rule: áp dụng cho tất cả các trang web khác
Cột 3: Local rule: áp dụng cho các trang web hiện tại
Ở cột 1 ở bên lề trái sẽ có vạch màu chỉ báo:
Màu đỏ: Tất cả các request đều bị CHẶN
Màu xanh: Tất cả các request đều được CHO PHÉP
Màu vàng: một số bị chặn, 1 số không
Ở cột 2 và 3 sẽ có 3 nút bấm:
Màu xanh: Allow (cho phép) - Xem thêm bên dưới
Màu xám: Noop (không làm gì) - không áp dụng Dynamic Filtering ở đây
Màu đỏ: Block (chặn)
Ở cột 2 và 3 sẽ có các kí hiệu khái quát số lượng request chị chặn/cho phép :
- hoặc +: có từ 1-9 request bị block/allow
-- hoặc ++: có từ 10-99 request bị block/allow
--- hoặc +++: có trên 100 request bị block/allow
không-có-gì: không có request bị block/allow

Áp dụng Block rules lên đối tượng trên tất cả các website (global rule)

Áp dụng Noop rules lên đối tượng trên website hiện tại (local rule)

Noop rule chỉ có ý nghĩa không áp dụng Dynamic Filtering, các bộ lọc khác vẫn tiếp tục hoạt động.

Đối với Dynamic Filtering: local sẽ ghi đè lên global, hay nói cách khác: rule nào chi tiết hơn sẽ ghi đè lên rule ít chi tiết. Ví dụ: rule cho youtube.com chi tiết hơn và ghi đè lên rule cho 3rd-party frames

Áp dụng Allow rules lên đối tượng trên website hiện tại (local rule)

Để kích hoạt nút Allow rule, làm theo 1 trong 2 cách sau

  1. Ấn 2 lần phím Ctrl khi mở bảng điều kiển uBO
    Không dùng được cách này trên Firefox có đặt tham số privacy.resistFingerprinting=true
  2. Đặt filterAuthorMode=true trong Advance Settings của uBO
    Biểu tượng bánh răng cưa cạnh dòng option I'm an advance user
Mục đích sử dụng:
Nhanh chóng xử lý quảng cáo mà không muốn phải đợi bộ lọc cập nhập
Ép trang web load nhanh hết mức có thể bằng cách chặn đi gần hết nội dung trang web không cần thiết
Thực tế:
Ví dụ vào một trang web đọc tiểu thuyết, nghĩa là trang web toàn chữ thì nên chặn hết script, iframe, ảnh.. để trang web tải hết tốc độ
Ví dụ những trang tin tức cũng toàn chữ và ảnh, có thể chặn iframe, script để trang web chỉ còn mỗi chữ và ảnh, ví dụ như VnExpress, DanTri…
Ví dụ những trang web động, cái mà nó thể hiện rõ ràng nhất là khi tải trang, trang web nó hiện từng phần từng phần một thì không nên chặn script, vì những trang này khả năng lớn nó cần dùng script để hiển thị nội dung

Xem thêm: https://github.com/gorhill/uBlock/wiki/Dynamic-filtering:-quick-guide

Góc drama - Nano Defenders: The shit hits the fan8 Tạm dịch

TL;DR: Trình chặn quảng cáo (ad-blocker) nguồn mở được bán cho “các dev Thổ Nhĩ Kỳ” gần như ngay lập tức bị biến thành phần mềm độc hại và giành được quyền truy cập vào tài khoản Instagram của mọi người. dev cho rằng đây nên là một “bài học kinh nghiệm”, nhưng không nghĩ họ đã làm sai quá sai.

Chi tiết: https://www.reddit.com/r/HobbyDrama/comments/jo9wxn/open_source_development_the_fall_of_nano_defender/

Tôi không chắc liệu phát triển nguồn mở có được coi là một sở thích hay không, nhưng này, mọi người làm việc đó vào thời gian rảnh rỗi, vì vậy…

Giới thiệu

Nano AdblockNano Defender là các ad-blocker nguồn mở. Có thể đây là các add-on không quá phổ biến (với tổng cộng khoảng hơn 250 nghìn người dùng trên Chrome Web Store), nhưng phần lớn người dùng đã nghe nói về dự án gốc: uBlock Origin. Mặc dù các dự án Nano có phiên bản trên các trình duyệt khác nhau (như Chrome, Firefox và Edge…) nhưng nội dung này sẽ tập trung vào Chrome.

Các dự án nguồn mở, cho những người chưa biết, là các dự án được cung cấp miễn phí cho cộng đồng sửa đổi và phân phối: Có thể tạo ra ad-blocker mới từ mã nguồn uBlock Origin hoặc Nano, trong khi không thể lấy mã nguồn của Microsoft Word và sử dụng nó để tạo ra một trình soạn thảo văn bản mới. Trong khi các công ty lớn có thư viện nguồn mở, rất nhiều công việc được thực hiện bởi các nhóm hoặc cá nhân nhỏ, đó là trường hợp của Nano.

Do tính chất nguồn mở của dự án, hầu hết những người duy trì nó đều làm việc với nó trong thời gian rảnh rỗi và miễn phí. Đây là khối lượng công việc khổng lồ và có thể gây căng thẳng cho ai đó. Điều đó dẫn tôi đến…

Nhà sáng lập bỏ đi

Vào ngày 3 tháng 10, người tạo ra các dự án Nano (@jspenguin2017, gọi tắt là JS) thông báo trên GitHub rằng vì lý do mất nhiều thời gian để bảo trì dự án nên họ sẽ chuyển nó cho chủ sở hữu mới. Trong thế giới nguồn mở, điều này là bình thường. Duy trì miễn phí phần mềm cấp doanh nghiệp thực sự vất vả và rắc rối. Mọi người đều (muốn) có cuộc sống riêng. Nó vốn là như thế.

Những gì đã không bình thường là sự mơ hồ trong các phát ngôn. Hãy xem, với tư cách là một ad-blocker, các dự án Nano có khả năng truy cập sâu vào những gì bạn nhìn thấy và thao tác trực tuyến. Điều quan trọng là phải biết ai sẽ có quyền truy cập vào dữ liệu đó (trừ khi bạn là một công ty công nghệ lớn, rõ ràng là vậy, nhưng điều đó dành cho cuộc thảo luận vào một ngày khác).

Đáng chú ý, một số thông tin quan trọng bị thiếu:
Thông báo không thực sự nói Ai đã mua lại các dự án.
Trên thực tế, thông báo dường như không cho biết có bao nhiêu người sẽ tham gia vào đội mới.
Thông báo không đề cập đến việc liệu đây có phải là một đợt mua bán hay các bên quan tâm có phải là thành viên của cộng đồng hiện tại hay không.

Vậy rõ ràng là chuyện này sẽ diễn ra quá tốt đẹp.

Mọi chuyện không suôn sẻ

Cộng đồng không hài lòng với thông báo này. Không hề.

JS khiến mọi thứ trở nên tồi tệ hơn khi đơn thuần giới thiệu nhóm phát triển mới là “nhóm gồm các dev Thổ Nhĩ Kỳ”, trong khi không muốn tiết lộ thêm thông tin. Sau đó, họ thông báo với cộng đồng rằng họ sẽ “giải quyết các bình luận của [cộng đồng] khi có nhiều thời gian hơn”. Nhưng cuộc thảo luận không mấy tốt đẹp. (Nguyên văn: “Not great optics”. “optic”: quang học, “topic”: chủ đề thảo luận - chắc tác giả gõ nhầm)

Ai đó tìm thấy tên của dev mới: Đây không phải là doxxing (tiếng lóng: được hiểu là các hành động tìm kiếm, thu thập và công khai thông tin cá nhân của một người trên internet mà không được sự cho phép của người đó.), những người này theo nghĩa đen là không tồn tại. Điều đó không tốt chút nào.

Tại thời điểm này, dev uBlock Origin (dự án gốc của Nano), Raymond Hill, đã vào cuộc. với một nhận xét mang tính tiên đoán.

“Hai dev”[1] không có hồ sơ theo dõi về việc từng đóng góp cho dự án hiện tại hoặc bất kỳ dự án liên quan nào ít nhất thể hiện bất kỳ mối quan tâm nào đến việc chặn nội dung hoặc quyền riêng tư hoặc thậm chí các chủ đề liên quan lỏng lẻo và không có sự hiện diện rõ ràng trên internet cho đến ngày nay , đã trả một số tiền không được tiết lộ để đổi lấy cơ sở người dùng và quyền kiểm soát kho GitHub.

Tính đến thời điểm hiện tại, cơ sở người dùng đã được chuyển giao (theo danh sách cửa hàng Chrome) và rất có thể phần lớn những người dùng đó sẽ không biết rằng các tiện ích mở rộng đã cài đặt của họ không còn được duy trì bởi người mà họ tin tưởng ban đầu nữa, ít nhất là ngầm hiểu, khi họ cài đặt những tiện ích mở rộng đó. Các liên kết đến chính sách bảo mật đã bị xóa khỏi danh sách cửa hàng Chrome (tại đây và tại đây).

Không cần phải nói rằng mục tiêu của “hai dev” này là kiếm tiền từ hai tiện ích mở rộng. “Hai dev” đó có thể sẽ tiếp tục nhập tất cả công việc từ thượng nguồn, tức là uBO, là kết quả của những tình nguyện viên lâu năm đầu tư thời gian và công sức rảnh rỗi của mình ngày này qua ngày khác trong nhiều năm, điều này cũng góp phần biến Nano AdBlocker trở thành thứ nó là.

[1] Sử dụng dấu ngoặc kép vì không ai biết rằng thực sự có hai dev thực sự vì cho đến nay vẫn chưa có gì có thể xác minh được.

JS trả lời ông Hill về cơ bản là “Chà, đây là một trải nghiệm đáng học hỏi”. Có lẽ đó không phải là thái độ cần có khi bạn nắm giữ hơn 250 nghìn dữ liệu của người dùng.

Ngoài ra, rõ ràng là ngay cả những thành viên cộng đồng có địa vị cao hơn cũng không được thông báo. Người phụ trách phần mở rộng Firefox của dự án Nano @LiCybora không biết chuyện gì đang xảy ra. Bạn sẽ nghĩ rằng bạn muốn gợi ý cho họ về điều đó.

Với tư cách là maintainer bản port Firefox, tôi muốn biết liệu “các dev Thổ Nhĩ Kỳ” cũng sẽ tiếp quản bản port trên Firefox hay chỉ phần Chrome(ium)/Edge. Tôi trung lập với quyết định này, nhưng nếu dev upstream bị thay đổi, tôi cần suy nghĩ xem liệu mình có nên tách khỏi upstream và đổi tên dự án, maintain cho các dev mới hay chỉ từ bỏ port Firefox. Không chắc tôi sẽ tiếp tục maintain cho các dev mới mà không biết lập trường của họ.

Động lực ban đầu của tôi khi maintain dự án này là tôi nhận thấy đây là một dự án hữu ích và không muốn nó chết trên Firefox (tác giả gốc trước đây và một số maintainer khác vẫn duy trì trên Firefox một thời gian). Tôi cố gắng hết sức để biến mình từ user bình thường thành maintainẻ. Tôi vẫn còn quá xa để có thể đủ điều kiện làm dev. Nhưng trong trường hợp tôi vẫn cần dự án này và các dev mới không tiếp quản port (hoặc trong trường hợp tôi không thích quan điểm của họ), tôi sẽ cố gắng hết sức để tự mình phát triển (hoặc duy trì cho chúng nếu tôi đồng ý với các dev mới).

Tuy nhiên, vì uBO có syntax-highlighter và Firefox Mobile mới không hỗ trợ các tiện ích bổ sung bên ngoài danh sách Recommended Extension, tôi thậm chí còn bối rối rằng liệu Nano Adblocker có còn cần thiết trên Firefox hay không nếu không có report issue (hoặc những nghi vấn rằng mọi người đang lo ngại). Tốt nhất thì các dev mới đều giỏi (có thể giỏi hơn tôi) và họ sẽ duy trì các cổng trên Firefox tốt hơn trước. Tệ nhất là tôi sẽ từ từ tự phát triển hoặc chỉ sử dụng uBO và từ bỏ nó.

Cập nhật: Tôi từ chối port cho dự án này nữa.

Vãi cả c*t (Nguyên văn: “Sh-t Hits the Fan”)

Nguyên văn tiêu đề: “Sh*t Hits the Fan”, là thành ngữ miêu tả, một cách rất rất thô thiển, về một tình huống bất ngờ mà gây rắc rối cho nhiều người, giống như khi có 1 bãi c.t bay vào cánh quạt. Fan vừa có nghĩa là quạt, vừa là người hâm mộ. Một cục c.t bay thẳng về phía người dùng.

Kể cả trong trường hợp tốt nhất, các phát ngôn của JS đều rất tệ. Mọi người đang tức giận. JS đang cố gắng thuyết phục mọi người rằng đây là “vì lợi ích tốt nhất của người dùng”, mặc dù cộng đồng đang cảm thấy không tốt. Một dev khác chỉ ra rằng JS bị chỉ trích thậm tệ khi rút lui khỏi một dự án tương tự.

Nhưng nếu đúng như vậy thì đó sẽ chỉ là một vụ lộn xộn khác của GitHub. Cộng đồng nguồn mở giống như một phiên bản chuyên nghiệp hơn của máy chủ discord, mọi người đều biết thế.

Như đã nói, phần này có tiêu đề “Shit Hits the Fan”.

Đầu tiên, mặc dù JS cố gắng né tránh nhưng rõ ràng là họ đã bán các dự án Nano. Họ cũng thừa nhận không biết họ đã bán nó cho ai, nhưng họ biết rằng các dev mới có kế hoạch kiếm tiền từ nó. Điều này hơi mờ ám vì họ đang kiếm tiền từ công việc của các tình nguyện viên, bao gồm cả các tình nguyện viên của uBlock Origin, những người không biết gì về thỏa thuận này.

Thứ hai, mọi người tức giận về việc một nhóm người chưa xác định đang xử lý dữ liệu nhạy cảm. Mọi người gọi các dự án Nano là phần mở rộng về “bảo mật và quyền riêng tư”. JS về cơ bản bỏ đi, từ chối tiếp tục phản hồi. Nói rằng cơn thịnh nộ bỏ đi không kéo dài.

Thứ ba, người ta phát hiện ra rằng trang web mới dành cho các dự án được kết hợp với nhau một cách kém chất lượng và các trang cửa hàng mới trên Chrome App Store không có chính sách bảo mật. Chính sách quyền riêng tư cuối cùng đã được thêm vào, nhưng nó chỉ là một mẫu ngẫu nhiên.

Thứ tư, mặc dù JS cho biết các dev mới sẽ tham gia cuộc trò chuyện nhưng họ chưa bao giờ làm vậy. Tôi đã kiểm tra tất cả các chủ đề và đến hôm nay vẫn chưa có. Tài khoản GitHub được cho là của họ không còn tồn tại nữa, vì vậy có điều đó.

Tại thời điểm này, mọi người đang hoảng sợ, bởi vì rõ ràng, điều này rất mờ ám. Và đây là một ứng dụng, nếu rơi vào tay kẻ xấu, có thể đọc mật khẩu của bạn Và kiểm soát trình duyệt của bạn, Trong số những thứ khác.

Ôi! Tất cả phần mềm độc hại

Ba ngày sau bài đăng gốc, tiện ích mở rộng Nano Chrome cập nhật lần đầu tiên kể từ khi chuyển. Giống như hầu hết các bản cập nhật phần mềm, một số code mới được thêm vào.

Thật không may, code mới đó đang gửi dữ liệu người dùng đến nguồn của bên thứ ba. Thế là đủ để được coi là phần mềm độc hại.

Đây là chi tiết kỹ thuật về điều đó.

The extension is now designed to lookup specific information from your outgoing network requests according to an externally configurable heuristics and send it to https://def.dev-nano.com/.

Người ta buộc tội JS “đặt người dùng vào tình thế nguy hiểm để kiếm tiền nhanh chóng”. JS bác bỏ điều này bởi vì họ “không tìm thấy điều gì xấu cả”.

Bởi vì hoàn toàn không có sự hiện diện trực tuyến rõ ràng không phải là một dấu hiệu nguy hiểm.

Hậu quả

Với số lượng người bị ảnh hưởng, một số bài báo được xuất bản. JS kiên quyết rằng đây là tất cả “điều gì đó chúng ta nên học hỏi”.

Ars Technica xác nhận rằng tiện ích mở rộng hiện có khả năng truy cập tài khoản Instagram của người dùng bị ảnh hưởng và tự động thích các bài đăng trên Instagram. Nhiều tài khoản khác có thể đã bị ảnh hưởng, nhưng điều này chưa được xác nhận.

Người ta cố gắng giải thích tại sao cách JS xử lý việc này lại không tốt). [JS không đồng ý, mặc dù có thừa nhận rằng có lẽ nên tham khảo ý kiến chuyên gia](https://github.com/jspenguin2017/Snippets/issues/2#issuecomment-711033337. Điều đó đang được nói, ý kiến ​​​​chính thức của họ dường như là vì đây là một dự án cá nhân, ai quan tâm đến cách họ xử lý mọi việc (họ cũng có vẻ tin rằng phần lớn những người bất đồng chính kiến ​​​​là những kẻ troll, điều đó không tuyệt vời).

Tôi có nên kiểm tra tiện ích mở rộng của mình không?

Đây không phải là lần đầu tiên chuyện như thế này xảy ra và cũng không phải là lần cuối cùng. The Great Suspender, với hai triệu người dùng, có thể đang bắt đầu cho một kịch bản tương tự. (Đính chính: Ừ thì nó có phức tạp hơn một chút.)

Bản chất của các dự án nguồn mở là chúng có thể bị hỏng, bị mua lại hoặc có chúa mới biết là gì. Vì vậy, nếu bạn tin tưởng, hãy đảm bảo rằng bạn biết mình đang tải xuống những gì.

Đó là toàn bộ Drama. Thương hiệu Nano- bị hư hỏng không thể khắc phục được và các extension đã bị xóa khỏi Chrome và Edge. Tương lai của tiện ích mở rộng Firefox vô tội vẫn chưa rõ ràng.

Kiểm tra tiện ích mở rộng của bạn nhé mọi người.

Cập nhật muộn

Hóa ra Nano không phải là phần mềm độc hại mạo đa ad-blocker duy nhất trên Chrome App Store. Những ứng dụng này có hơn 80 triệu người dùng kết hợp.

Vì vậy, như tôi đã nói, hãy kiểm tra extensions của bạn.

Auto Tab Discard: Tự động unload tab không hoạt động

Unload tab có sẵn (native) trên Firefox9

Tạm dịch
Tab Unloading là một tính năng tự động tắt các tab để ngăn Firefox bị crash do thiếu bộ nhớ, gồm hai thành phần: nhận diện thiếu tài nguyênunload tabs. Trình duyệt sẽ tự động unload tab khi phát hiện bộ nhớ xuống thấp: xếp hang ưu tiên và lựa chọn unload các tab; nếu không có tab nào có thể unload, trình duyệt sẽ kích hoạt cảnh báo nội bộ cho phép các modules giảm lượng sử dụng bộ nhớ của chúng. :
Thứ tự ưu tiên các tab cụ thể: :
  1. Firefox cơ bản tắt các tab theo thứ tự đã lâu chưa sử dụng nhất, ngoại trừ các tab đang phát multimedia, sử dụng Picture-in-Picture hoặc sử dụng WebRTC. Các tab được ghim sẽ được ưu tiên thấp hơn và ít có khả năng bị tắt. :
  1. Khi có nhiều tab được mở hơn, trong hầu hết các trường hợp khi có hơn mười một tab, Firefox sẽ thực hiện các tính toán bổ sung để xác định các tiến trình lưu trữ tab và ước tính mức sử dụng bộ nhớ của mỗi tab, sau đó tắt các tab tốn nhiều bộ nhớ hơn, và nhiều tiến trì sx kết thúc sau khi unload tab

Tuy không được trình bày cụ thể, nhưng trong about:config có tham số browser.tabs.min_inactive_duration_before_unload: 600000, nếu đơn vị tính là mili-giây thì tương đương 10 phút. Đây (chắc?) là thời gian để bị coi là lâu chưa sử dụng

Theo giang hồ phàn nàn thì cái tính năng này đã yếu (chỉ unload nếu bộ nhớ dưới 400MB - máy 16Gigs RAM thì bao giờ nó mới chạy?) lại còn không ổn định, nên là tắt luôn đi cho lành: browser.tabs.unloadOnLowMemory = false

browser.tabs.unloadOnLowMemoryfalse
1
2
// Disable native tab unloader
user_pref("browser.tabs.unloadOnLowMemory", false );
https://www.reddit.com/r/firefox/comments/co6xng
I believe the native tab unloading is only activated when available memory is critically low. Auto Tab Discard has many more options to discard tabs either manually or via other conditions automatically.

Starting with Firefox 93, Firefox will monitor available system memory and, should it ever become so critically low that a crash is imminent, Firefox will respond by unloading memory-heavy but not actively used tabs.

https://www.reddit.com/r/firefox/comments/co6xng
Unloading of tabs should happen when available memory is below 400MB when that preference is set to true.
That preference has been set to false as default since v68 as it does not work as intended, were it will unload tabs even if there is more than 400MB of available memory.
  • Bug 1558930: Turn off tab unloading on release
  • Bug 1558554: Tabs are suspending above the low memory threshold
  • Bug 1558554: Tabs are suspending above the low memory threshold #5

Add-on Auto Tab Discard110

Tải và cài đặt: https://addons.mozilla.org/en-US/firefox/addon/auto-tab-discard/
Vào chỉnh When the number of inactive tabs exceeds:1 (cứ có 1 tab không hoạt động là tắt)
Thỉnh thoảng dọn rác
  • Vào about:memory, chọn GC: để Firefox giải phóng bớt RAM thừa đi
  • Vào about:unloads: click Unload nếu như muốn tự tay unload tab
  • Vào about:config: xóa sạch trong extensions.webextensions.restrictedDomains để unload không vùng cấm
1
2
// Add-on run no exception
user_pref("extensions.webextensions.restrictedDomains", "");

ProxySwitchy Omega - Fake IP theo tên miền[^ff-proxy-switchy-1]

Vượt Deep Packet Inspector (DPI) của nhà mạng để vào tên miền bị chặn11

Tuy sử dụng HTTPS được mã hóa, nhưng giữa client và server vẫn trao đổi một số thông tin trong quá trình bắt tay TLS ban đầu để thỏa thuận mã hóa. Trong quá trình bắt tay ban đầu này, client sẽ gửi tên của máy chủ mà nó đang liên hệ dưới dạng văn bản rõ (gói ClientHello) để máy chủ biết chứng chỉ nào cần cung cấp. Các hệ thống Kiểm tra Gói sâu (DPI) có thể chặn kết nối bằng cách chặn giao tiếp này. Để tránh bị phát hiện, Demergi phân đoạn và sửa đổi gói ban đầu này.

Có những giải pháp đầy hứa hẹn cho vấn đề ẩn giấu càng nhiều thông tin càng tốt trong quá trình bắt tay ban đầu của kết nối TLS, một trong số đó là Encrypted Client Hello (ECH). Tuy nhiên, cho đến khi các giải pháp này được triển khai đầy đủ, các công cụ như Demergi có thể hữu ích như các cơ chế trốn tránh.

Demergi là một công cụ mạnh mẽ có thể được sử dụng để bỏ qua DPI, nhưng nó không phải là một giải pháp bảo mật hoàn toàn. Một số nhà cung cấp dịch vụ Internet có thể phát hiện và chặn Demergi.

Ưu điểm
Hoạt động trên 100% trang web thậm chí không cần ECH, không quan tâm là Medium, Bonhup hay ẾchVid…
Giải pháp mang tính toàn tổng hơn sử dụng cách thức băm nhỏ gói tin ClientHello ra để vượt cạn
KHÔNG HỀ fake IP, nghĩa là tốc độ sẽ nguyên 100%, không tốn 1 xu, không dựa dẫm vào một ai cả
Không gây lỗi web như GoodbyeDPI vì nó chỉ hoạt động trên những trang cần thiết chứ không toàn bộ hệ thống

Cài đặt

1
2
npm install -g demergi
demergi --help

Sử dụng NSSM (https://nssm.cc/download) để chạy Demergi như service (chạy ngầm không hiện cửa sổ):

Cách 1: mở cmdnssm install cho nó hiện cái giao diện ra:
Path: D:\demergi\demergi-win-x64.exe
Startup directory:D:\demergi
Arguments: (để trống)
Service name: Demergi
Cách 2: gõ luôn cmd dài
nssm install Demergi D:\demergi\demergi-win-x64.exe
Vào phần config của ProxySwitchy Omega tạo một Proxy Profile tên Demergi, điền vào là 127.0.0.1 port 8080 rồi Apply
Pofile Demergi
Tạo tiếp một Switch Profile tên Auto rồi Add condition rồi chọn Type là Host regex, Details là ^.*?(?:medium.com|pornhub.com|xvideos.com) chọn Profile là ChunkRust rồi Apply
Profile Auto

Chú ý: Muốn thêm trang nào thì tự thêm vào phần Details

Chọn proxy là Auto trên thanh toolbar của ProxySwitchy Omega, và thế là xong.
Chọn Auto trên toolbar

Truy cập .onion với Tor Control Panel (chỉ có trên Windows) 12

Ưu điểm
Không bao giờ khiến trang web hàng ngày hay vào chậm đi
Chọn được quốc gia nên không có chuyện dùng máy chủ Tor tận châu Phi gây chậm, mà dùng hẳn Singapore, Hong Kong
Yêu cầu
SwitchyOmega ở #1
Tor Control Panel (TCP) ở mục SwitchyOmega #1

Cài đặt Tor Control Panel

Tải về cài đặt: https://github.com/abysshint/tor-control-panel/releases
chạy rồi Start, đợi một lúc, sau đó đặt proxy mà nó hiện ra ở phần mềm thường là 127.0.0.1:9050 hoặc 127.0.0.1:9051 vào socks của ProxySwitchy là xong thôi. Cụ thể port nó nằm ở:
Sau đó muốn chọn quốc gia thì vào Settings chọn Filter:
Bỏ đánh dấu tất cả mấy cái ngôi sao nhìn thấy đi cho đến khi Entry, Middle, Exit đều là 0, 0, 0 (cứ click chuột vào ngôi sao đen) sau đó chọn một quốc gia ưa thích, đánh 3 dấu sao vào như hình dưới, chọn Apply rồi Change Circuit.
Muốn nhanh chọn các nước có ping thấp và gần Việt Nam
Thông số tốc độ có hết trong mục Filter, các bạn cứ mạnh dạn ấn vào để sắp xếp theo thứ tự như Ping, Alive (thời gian sống, sống càng lâu càng tốt), Country (quốc gia) rồi chọn một cái ưng ý.

Config Proxy Switchy Omega

Ấn vào biểu tượng Switchy rồi Options -> New Profile
Đặt tên là Tor Control Panel, phân loại Proxy Profile
Ở phần Protocol chọn SOCKS5, Server 127.0.0.1, Port 9050 hoặc 9051, tùy theo cái port mà TCP phân cho rồi Save.
Profile Tor Control Panel
Chọn Switch Profile đã có (hoặc tạo mới)
Chọn Host regex (bật Advanced settings nếu không thấy), điền vào là ^.*?\.onion
Phần profile chỉnh thành Tor, Save
Profile Auto
Chọn proxy là Auto trên thanh toolbar của ProxySwitchy Omega, và thế là xong.
Chọn Auto trên toolbar

Sau đó vào các trang .onion rồi hưởng thụ thành quả, mấy trang này chứa rất nhiều hàng hiếm (có thể tham khảo bài bên trên có chia sẻ vài trang căn bản), thậm chí là chống lại nhân loại, nói chung là tiết chế để tránh bản thân trở nên sa sút

Header Editor - Đổi User-Agent/Language, tùy ý thay đổi nội dung trang web1

Header Editor là add-on cực mạnh giúp phá và sửa trang web, tính năng:
Thêm/xóa/sửa header (User-Agent, Referer…) của Request và Response
Thêm/xóa/sửa source (HTML) response của server để thay đổi hiển thị trước khi trình duyệt render

Tùy biến Youtube

Không chuyển hướng Youtube Mobile về PC

  • Click vào dấu + (New)
  • Rule type: Modify request header
  • Match type: Domain
  • Match Rules: m.youtube.com
  • Execute type: normal
  • Header name: user-agent
  • Header value: Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/113.0 Firefox/113.0
  • Save

Config trên HE

Chuyển hướng từ Youtube PC sang Mobile

  • Click vào dấu + (New)
  • Rule type: Redirect request
  • Match type: Regular expression
  • Match Rules: ^https://www.youtube.com/(.*?$)
  • Execute type: normal
  • Redirect to: https://m.youtube.com/$1

Config trên HE

Tắt Hovering to Play (Playback Inline)

  • Click vào dấu + (New)
  • Rule type: Modify response header
  • Match type: Regular expression
  • Match Rules: .*?youtube.*?/
  • Execute type: Custom function
  • Code:
    1
    2
    3
    4
    5
    
    for (const a in val) {
      if (val[a].name.toLowerCase() === 'set-cookie') {
          val[a].value+='\nPREF=f7=1';
      }
    }
    

Config trên HE

Tùy biến Facebook

Không chuyển hướng từ Facebook Touch về PC

  • Click vào dấu + (New)
  • Rule type: Modify request header
  • Match type: Domain
  • Match Rules: touch.facebook.com
  • Execute type: normal
  • Header name: user-agent
  • Header value: Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/113.0 Firefox/113.0
  • Save

Config trên HE

Chuyển hướng từ Facebook PC sang Touch

  • Click vào dấu + (New)
  • Rule type: Redirect request
  • Match type: Regular expression
  • Match Rules: ^https://www.facebook.com/(.*?$)
  • Execute type: normal
  • Redirect to: https://touch.facebook.com/$1

Config trên HE

Đó là sức mạnh của Header Editor (HE), khi mà đẩy giới hạn của nó lên mức cao nhất.

Thay đổi nội dung website

Tính năng Element Picker của Adblock (uBlock, Adguard, ABP…) cho phép ẨN nội dung web đi, thế nhưng ẩn khác xa với chặn: ẩn thì những bức ảnh, rác rưởi vẫn sẽ tải ngầm và vẫn lãng phí tài nguyên. Còn HE thì có khả năng XÓA nội dung web đi: đã xóa là đứt con nòng nọc không để lại hậu quả về sau.

Ưu điểm:
Xóa triệt giống nòi, không để hoạt động, kết nối ngầm
Hiệu năng cao nhất (do hoạt động ở tầng mã nguồn, nghĩa là xóa trước khi trang web hiển thị)
Xóa được những quảng cáo khó nhất (đọc bài về cách mình dùng HE chặn Anti-Ablock mà cả uBlock cũng gần như chịu thua (chỉ uBlock của Firefox mới qua được nhưng khó vô cùng))
Nhược điểm
Yêu cầu khá cao từ phía người dùng.
Sử dụng các trang regex101 hoặc regexr để viết regex cho chắc
regex101: https://regex101.com/
regexr: https://regexr.com/
Các tùy biến trong phần này yêu cầu bật Modify response body (only supports Firefox), cụ thể:
Click vào biểu tượng Header Editor ở Toolbar -> Manage -> Options
Đánh dấu Modify response body (only supports Firefox)

Xóa khung comment trên blogtruyen.com13

Vấn đề
Khi tải trang https://blogtruyenmoi.com/c402446/bat-nat-chap-1, trình duyệt tải cả phần comment với ảnh động, tốn bandwidth và tài nguyên CPU/GPU để render.

Giải pháp
Xóa tiệt nó đi

Bật Modify response body (only supports Firefox) nếu chưa từng bật

  • Click vào dấu + (New)
  • Rule type: Modify response body
  • Match type: Regular expression
  • Match Rules: ^(.*?)blogtruyenmoi(.*)
1
^(.*?)blogtruyenmoi(.*)
  • Execute type: Custom function
  • Custom function: return val.replace(/<section style="background: white;margin: 10px auto; width: 1200px;height: 1200px; z-index: 999; position: relative;">[\s\S]*?<section class="bg-white comments"[\s\S]*?<div class="clear-fix"><\/div>[\s\S]*?<\/section>/, '<!-- CLEANED -->');
1
2
3
4
return val.replace(
   /<section style="background: white;margin: 10px auto; width: 1200px;height: 1200px; z-index: 999; position: relative;">[\s\S]*?<section class="bg-white comments"[\s\S]*?<div class="clear-fix"><\/div>[\s\S]*?<\/section>/,
   '<!-- CLEANED -->'
);
Cơ chế hoạt động
Ở phần trên mình sẽ giải thích kỹ hơn, các bạn chuột phải vào trang ví dụ rồi View Source, các bạn sẽ xóa là xóa nội dung HTML trong các mã nguồn đó, thì phần comment nó ở đoạn này:
Mục đích ở đây là các bạn viết code RegEx sao cho nó nhặt toàn bộ đoạn này và xóa đi. Khi bạn F5 ở phần View Source sẽ thấy nó bị xóa hoàn toàn:
Nói chung là như hình sau:
Save và F5, Kết quả:
Cái khung comment bị triệt hết cả giống nòi, trang load siêu nhanh bởi không còn phí thời gian tải Facebook, rác rưởi, cặn bã…:

Xóa khung right pane trên voz 14

Ví dụ đời thực là trang chủ Đen Vâu, ở đây là mình ẩn bằng uBlock, nghĩa là kể cả ẩn đi rồi Tiktok vẫn load ầm ầm, vẫn track người dùng, vẫn tốn bandwidth và tất nhiên áp dụng cho cả Youtube, nếu sử dụng HE xóa triệt sẽ lại là một câu chuyện khác:

Bật Modify response body (only supports Firefox) nếu chưa từng bật

  • Click vào dấu + (New)
  • Rule type: Modify response body
  • Match type: Regular expression
  • Match Rules: ^.*?voz.vn/$
1
^.*?voz.vn/$
  • Execute type: Custom function
  • Custom function: return val.replace(/<div class="block" data-widget-id="8" data-widget-key="forum_overview_new_profile_posts" data-widget-definition="new_profile_posts" data-xf-init="lightbox">[\s\S]*?<div class="block" data-widget-id="9" data-widget-key="forum_overview_forum_statistics" data-widget-definition="forum_statistics">/, '<!-- CLEANED --><div class="block" data-widget-id="9" data-widget-key="forum_overview_forum_statistics" data-widget-definition="forum_statistics">');
1
2
3
4
return val.replace(
   /<div class="block" data-widget-id="8" data-widget-key="forum_overview_new_profile_posts" data-widget-definition="new_profile_posts" data-xf-init="lightbox">[\s\S]*?<div class="block" data-widget-id="9" data-widget-key="forum_overview_forum_statistics" data-widget-definition="forum_statistics">/, 
   '<!-- CLEANED --><div class="block" data-widget-id="9" data-widget-key="forum_overview_forum_statistics" data-widget-definition="forum_statistics">'
);

Cụ thể:

F5 lại cái, và anh ấy đã trết, trang tải nhanh như tên lửa, đó là cả một thế giới mới đó. Benchmark hẳn luôn tốc độ tải trang, chưa tới 1s (https://streamable.com/uigw5h). :D

HE là một vũ khí khủng khiếp giúp bạn thâm nhập sâu vào mã nguồn trang web, nếu thành thạo các bạn có thể tăng tốc lướt web lên bằng cách xóa những thứ rác không cần thiết, cách này vượt trội so với ẩn đi bằng CSS display:none của uBlock/Adguard/ABP, và trị những quảng cáo cứng đầu nhất.

Download: https://github.com/filecxx/FileCentipede/releases

Nếu các bạn xài Firefox Portable hay Floorp thì vào trang add-on cài https://addons.mozilla.org/vi/firefox/addon/filecxx/ hoặc tải file firefox.xpi tại đây rồi kéo thả nó vào để cài đặt là xong nếu nó không tự cài đặt, thường thì khi xài Firefox cài đặt là nó tự cài.

Tính năng thì:
Y như IDM (đa luồng, thời gian biểu (schedule), bắt link video, hàng loạt…)
Hơn IDM (kéo Torrent, ED2K)
KHÔNG GHÉP FILE mà tạo ra một file ảo sau đó ghi liên tiếp vào file ảo trên, không nghẽn ổ đĩa

Thuốc @Fioren15

Thoát hoàn toàn app
Tải DB Browser for SQLite Portable, giải nén và chạy
Link: https://portableapps.com/apps/development/sqlite_database_browser_portable
Vào File > Open database
Chọn file filecxx_xxxxx\lib\data_windows.db
Click phải vào table local > Delete Table
Save lại
Ctrl + S
Mở lại File Centipede check reset trial lại 3 ngày sử dụng chưa.
Help > Activation code
Thoát hẳn như bước 1
File > Fully Shutdown
Mở lại cửa sổ SQLite Portable
Ấn F5 hiển thị lại table local,
Chuyển tab Browser Data chọn local
Dòng số 1,2 là 2 dãy chữ số giống nhau
Ấn đè kéo cái 2 dòng đó để edit được.
Đổi chữ cái gần cuối cùng thành chữ a. Ví dụ: FdyQ764GihkY thành FdyQ764GihaY
Save lại
Ctrl + S
Mở lại File Centipede thấy ngày đã tăng

File ăn sẵn dành cho ai lười:
Giải nén copy đè file data_windows.db vào filecxx_xxxxx\lib

Link: https://addons.mozilla.org/en-US/firefox/addon/multithreaded-download-manager/

Tính năng
Tải đa luồng như IDM hoạt động nhé, cơ mà mặc định giới hạn 6 luồng (đủ dùng và tốt nhất nên để 6 luồng thậm chí thấp hơn tầm 3-4 luồng sẽ xanh sạch đẹp cho server hơn) bằng với network.http.max-persistent-connections-per-servernetwork.http.max-persistent-connections-per-proxy trong about:config vì nó dùng API network của Firefox tải file:
Hỗ trợ bắt link video như IDM nhé, mà nó hoạt động trong Firefox nên không quan tâm tới Referer hay Cookies
Có tính năng Queue để giới hạn số lượng tải về trong cùng một thời điểm nhé:

Nên dùng kết hợp với script bắt link video của bạn @boscofz sẽ rất tiện, script nhỏ nhẹ và tương thích mọi trang web: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-23935535

Kết hợp với yt-dlp như hướng dẫn này của mình thì IDM gọi bằng cụ nhé :D https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-23288076

Tổng kết lại tính năng so với IDM:
Tải đa luồng: Có
Pause/Resume file đang tải dở: Có
Quản lý tải về: Có
Tải giới hạn số lượng tải cùng lúc: Có
Bắt link video: Có (tốt hơn IDM do nó dùng cookies/referer từ Firefox)
Tải hàng loạt: Có (tốt hơn IDM do nó dùng cookies/referer từ Firefox)
Tính năng mà IDM không có:
Hoạt động ngay trong trình duyệt nên nó sử dụng cookies/referer tốt hơn, chia sẻ đăng nhập với Firefox nên không cần đăng nhập lại account premium. Nếu trang nào tải khoai quá vì một số lý do nó ghét phân luồng thì chọn Continue in browser tải trong Firefox là xong.
Không cần ghép file như IDM làm quá tải ổ cứng, thằng này sử dụng thuật toán file ảo hiện đại, nó tạo ra một file ảo sử dụng Storage API của Firefox, ví dụ tải file 4GB thì nó tạo ra một file rỗng 4GB, sau đó tải nhồi dữ liệu vào file đó luôn nên không ghép file như IDM (đòi gấp 2 dung lượng)
Tải những thứ mà IDM không tải được do nó hoạt động trong Firefox, cái gì Firefox thấy là nó thấy, và nó thấy là nó tải được.
Không thể bị phát hiện do nó dùng TLS Fingerprint của Firefox, nghĩa là Firefox chia luồng ra Firefox tải, nếu trang web muốn chặn là phải chặn cả Firefox, còn IDM thì nó có Fingerprint riêng (kể cả để HTTP Header y hệt trình duyệt trang web vẫn phát hiện được qua TLS Fingerprint.

Các trang web tài file thường là ghét bị chia luồng vì nó tốn tài nguyên ổ đĩa I/O (cứ hiểu là đọc ghi ổ đĩa) gấp N lần số luồng, chia làm 16 luồng thì ổ cứng của họ phải làm việc gấp 16 lần gây nghẽn đọc ghi, Google Drive mặc định là nó không cho chia luồng vì nó không gửi trả Accept-Ranges, mình cứ bỏ qua chia thì nó đáp trả vậy đó. Nhìn chung cứ Continue in browser nếu file bự quá.

Bản mod ngon hơn hỗ trợ tải đa luồng Google Drive và nhiều trang hơn16

Tải về, giải nén quăng vào about:addons.

Nếu báo không cài được:
Vào about:config
Tìm xpinstall.signatures.required chuyển thành false
Tìm xpinstall.whitelist.required chuyển thành false
xpinstall.signatures.requiredfalse
xpinstall.whitelist.requiredfalse
1
2
3
// Un-check singature extension
user_pref("xpinstall.signatures.required", false);
user_pref("xpinstall.whitelist.required", false);

Tải ở đây: https://voz.vn/attachments/mdm-zip.1779202/

Vậy là không phải do tác giả viết sai kỹ thuật đâu bác, mà là viết quá tuân thủ kỹ thuật. Lẽ ra phải lươn lẹo như mấy thằng khác, có accept-range hay không cũng kệ, thấy content-length là chia luồng tải trước, lỗi thì quay lại 1 luồng.

Có 2 file connection.jsmonitor.js, dùng Find tìm acceptRanges rồi chuyển tất cả cái gì là false thành true là xong.

Cách học lỏm code của bất kỳ ai nhanh nhất là dùng Notepad++, cài Compare Plus rồi mở cá 2 dự án đã được sửa và gốc lên rồi so sánh toàn bộ file, như vậy nó sẽ lộ ra phần đã chỉnh sửa nằm ở đâu file nào.

https://i.imgur.com/iqA6i5Q.png

Tùy chỉnh

Trong tab General
Bật Enable prompt for links without multithreading support: AudioVideo
Trong tab Network
Đặt Minimum chunk307200 KB (tương đương 300 MB - tránh MDM chia luồng tải dung lượng quá bé)
Đặt Maximum retriesUmlimited (xóa số mặc định đi là thành Unlimited)

Violentmonkey/Greasymonkey/Tampermonkey1

Violentmonkey
Link: https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/
Có tính tương thích cao, mã nguồn mở
Greasymonkey
Link: https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/
Tthủy tổ của tất cả, tính tương thích tàm tạm, tính năng đã lỗi thời
Tampermonkey
Link: https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/
Có tính tương thích rất cao, tuy nhiên là mã nguồn đóng <https://github.com/Tampermonkey/tampermonkey/issues/1515]
Firemonkey
Trẻ trâu mới vào làng, rất nhanh và nhẹ
Tính tương thích kiểu lúc được lúc không, nên tạm thời cho xuống Thùng Rác

Linguist/TWP - Dịch trang web, bôi đen với >100 ngôn ngữ (hỗ trợ dịch offline)”1

Linguist: Chrome có tính năng tự động dịch trang web mà nhiều người chết mê chết mệt, vậy Linguist mang đến cho Firefox tính năng dịch tương tự và nhiều hơn vì Linguist hỗ trợ dịch bôi đen, tính năng đặt ngoại lệ, tính năng dịch ngôn ngữ bất kỳ trên trang bất kỳ ví dụ trang tiếng Nhật thì dịch sang Anh thay vì sang Việt. Thậm chí Linguist còn hỗ trợ dịch offline hoàn toàn không dùng tới kết nối internet dựa trên dự án Bergamot của Firefox.

Ngoài ra TWP - Translate This Page cũng là một lựa chọn tương đối.

Cách để dịch theo quy luật ngôn ngữ / trang web bất kì17

Ấn vào biểu tượng toolbar, chọn Nguồn -> Đích, sau đó phần Preferences for xxx chọn Always translate, kết quả nó thành thế này.

Thế là F5 cái Đen Vâu.vn tự dịch từ Việt -> Anh.

Search by Image - Tìm kiếm ảnh, dịch trong ảnh1

Search by Image: Dùng để tìm ảnh trùng lặp trên RẤT nhiều nguồn từ Google tới Tung Của rồi Nga Ngố, đủ thể loại, rất nhẹ cài vào chả dùng tí tài nguyên nào cả, chỉ là cái Context Menu cực đơn giản nhưng đa năng, và tính năng mà rất nhiều người sẽ thèm muốn là OCR dùng để xuất chữ ra từ ảnh dựa trên Google Lens. Vào Options của nó bật Google Lens lên là có tính năng OCR ngon lành cành đào:

Progressive Web Application for Firefox - Tạo ứng dụng web như Zalo, Discord,..118

Zalo điếm thúi

Câu nói quen thuộc của người dùng khi sử dụng lợn Zalo, bản PC thì chậm, ngốn tài nguyên, ngốn ổ đĩa, khởi động cùng hệ thống một cách vô lý… Bản web cũng chả kém cạnh gây chậm trình duyệt do lưu trữ một lượng IndexDB lớn ảnh. Cơ mà ở Việt Nam mà không dùng Zalo thì khỏi nghĩ tới:

  • Tán gái, gái Việt dùng Zalo, không có khỏi tán gái
  • Nhiều công ty ép nhân viên dùng Zalo, không có khỏi làm việc
  • Xã hội dùng Zalo, không có khỏi giao tiếp

Vậy nên mấy hôm trước mình lặn lội thân cò tìm đường cứu nước, và giải pháp ở đây là biến thằng Zalo này thành ứng dụng web (PWA/Progressive Web Application), để nó tách biệt với trình duyệt và hoạt động như một ứng dụng web kiểu Electron có hẳn một biểu tượng riêng để mở ở Desktop, và đặc biệt khác với Zalo thường, thằng PWA này biến Zalo thành Portable, nghĩa là bê đi đâu cũng được mở phát lên dùng như khi ở nhà. Sau vài hôm sử dụng và nghiên cứu để có thể viết hướng dẫn mà ai cũng có thể làm được dù lấy não đặt sang một bên. :D

Addon này nhìn chung giống với PWA của Chrome, cơ mà ngon hơn nhiều về tính năng.

Vậy thì vào việc thôi.

Vậy đầu tiên đối tượng nào phù hợp để biến thành PWA ? Vào Settings -> Manage Cookies and Site Data, thấy thằng nào dùng tầm 1-2GB thì nghĩa là phù hợp, ví dụ:

  • Cài đặt Progressive Web Application vào Firefox.
  • Vào trang này tìm file kiểu firefoxpwa_x.x.x_online.paf.exe rồi cài vào: https://github.com/filips123/PWAsForFirefox/releases
  • Chạy PWAsForFirefoxPortable.exe
  • Chuột phải vào file PWAsForFirefoxPortable.exe rồi Copy
  • Win + R, mở %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
  • Paste Shortcut vào để nó khởi động cùng hệ thống
  • Quay lại Firefox, mở https://chat.zalo.me/ lên, đăng nhập các kiểu rồi ấn vào biểu tượng PWA đỏ đỏ bên trên -> Install current site -> Install Web App là xong thôi. Nếu muốn sửa lại tên ứng dụng thì cứ sửa.
  • Chọn Launch Web App hoặc cứ mở https://chat.zalo.me/ là nó mở thẳng qua PWA như một ứng dụng Zalo điện thoại, kết quả:

Còn nếu muốn copy toàn bộ dữ liệu Zalo từ Firefox đang dùng theo nhu cầu của @wuwu_999 thì đầu tiên cứ đăng nhập vào cái Zalo App mới này, ở Firefox chính vào about:support -> Open Profile Folder rồi copy cả folder storage rồi vào folder kiểu PWAsForFirefoxPortable\Data\profiles\00000000000000000000000000 của PWA rồi ghi đè lên là ok.

Kiểm tra lại xem có ok không, nếu đã ok rồi thì cứ mạnh dạn xóa sạch IndexDB trong Cookies and Site Data của Firefox chính là xong, thế là trả lại cho Firefox chính một bầu trời bình yên và thằng Zalo cuốn xéo sang một nơi khác ở. :D

Nếu thích cứ tạo Shortcut mà mở từ Desktop là giống y chang thằng Zalo PC, mà không bị ba cái vụ ba xàm kia. Áp dụng tương tự cho nhiều trang web khác nhé, ví dụ Photopea (biến thành offline luôn), Discord…

Đã cho lên #1, add-on ngon và tương lai sẽ có thêm tính năng Minimize to Tray như tác giả hứa.

Cách Pin PWA vào Taskbar1920

Cái này phải lấy command line từ cái process firefox.exe sau đó New shortcut -> Paste vào (cố gắng để folder PWA càng ngắn càng tốt vì shortcut có giới hạn 256 ký tự thôi), thế là xong ez, làm tương tự với Linux/Mac:

Nếu muốn Pin vào Taskbar thì chuột phải vào cái Shortcut mới tạo, chọn Pin to Taskbar là xong nhé.

Tạo Template cho PWA

Hôm nay có nhắc tới vụ tạo Template cho PWA, sau một thời gian hỏi han tìm hiểu mình đã ngộ ra được chân lý nên phải viết ngay.

Ví dụ là ép cho PWA tiết kiệm RAM bằng cách tắt Fission đi nha.

  • Tạo một folder rỗng ở đâu thì tùy, ví dụ pwat
  • Tạo một file user.js trong thư mục trên, copy toàn bộ đoạn dưới vào:
1
2
user_pref("fission.autostart", false);
user_pref("dom.ipc.processCount", 1);
  • Save lại
  • Từ cửa sổ Firefox/Floorp, ấn vào biểu tượng PWA
  • Ấn vào cái bánh răng
  • Dán đường dẫn tới thư mục pwat vừa tạo ban nãy:

Và thế là xong, từ nay mỗi khi bạn tạo một ứng dụng PWA mới, nó sẽ thừa hưởng file user.js và tắt Fission đi tiết kiệm rất nhiều RAM, các bạn có thể tham khảo #2 phần Tối ưu Firefox mình có để rất nhiều tối ưu, hoàn toàn có thể áp dụng một số tối ưu để tăng tốc PWA lên được như nglayout, tắt chạy nền, ví dụ đây là một file user.js hịn tắt Fission, tối ưu nglayout, tắt chạy nền:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
user_pref("fission.autostart", false);
user_pref("dom.ipc.processCount", 1);
user_pref("nglayout.initialpaint.delay", 2000);
user_pref("nglayout.initialpaint.delay_in_oopif", 2000);
// Enable Multi-Account Container
user_pref("privacy.userContext.enabled", true); //enable Multi-Account Container
user_pref("privacy.userContext.ui.enabled", true); //enable Multi-Account Container

/*** [SECTION 0200]: GEOLOCATION / LANGUAGE / LOCALE ***/
user_pref("_user.js.parrot", "0200 syntax error: the parrot's definitely deceased!");
/* 0201: use Mozilla geolocation service instead of Google if permission is granted [FF74+]
 * Optionally enable logging to the console (defaults to false) ***/
user_pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
   // user_pref("geo.provider.network.logging.enabled", true); // [HIDDEN PREF]
/* 0202: disable using the OS's geolocation service ***/
user_pref("geo.provider.ms-windows-location", false); // [WINDOWS]
user_pref("geo.provider.use_corelocation", false); // [MAC]
user_pref("geo.provider.use_gpsd", false); // [LINUX]
user_pref("geo.provider.use_geoclue", false); // [FF102+] [LINUX]

/*** [SECTION 0300]: QUIETER FOX ***/
user_pref("_user.js.parrot", "0300 syntax error: the parrot's not pinin' for the fjords!");
/** RECOMMENDATIONS ***/
/* 0320: disable recommendation pane in about:addons (uses Google Analytics) ***/
user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF]
/* 0321: disable recommendations in about:addons' Extensions and Themes panes [FF68+] ***/
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
/* 0322: disable personalized Extension Recommendations in about:addons and AMO [FF65+]
 * [NOTE] This pref has no effect when Health Reports (0331) are disabled
 * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to make personalized extension recommendations
 * [1] https://support.mozilla.org/kb/personalized-extension-recommendations ***/
user_pref("browser.discovery.enabled", false);

/** TELEMETRY ***/
/* 0330: disable new data submission [FF41+]
 * If disabled, no policy is shown or upload takes place, ever
 * [1] https://bugzilla.mozilla.org/1195552 ***/
user_pref("datareporting.policy.dataSubmissionEnabled", false);
/* 0331: disable Health Reports
 * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send technical... data ***/
user_pref("datareporting.healthreport.uploadEnabled", false);
/* 0332: disable telemetry
 * The "unified" pref affects the behavior of the "enabled" pref
 * - If "unified" is false then "enabled" controls the telemetry module
 * - If "unified" is true then "enabled" only controls whether to record extended data
 * [NOTE] "toolkit.telemetry.enabled" is now LOCKED to reflect prerelease (true) or release builds (false) [2]
 * [1] https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html
 * [2] https://medium.com/georg-fritzsche/data-preference-changes-in-firefox-58-2d5df9c428b5 ***/
user_pref("toolkit.telemetry.unified", false);
user_pref("toolkit.telemetry.enabled", false); // see [NOTE]
user_pref("toolkit.telemetry.server", "data:,");
user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.newProfilePing.enabled", false); // [FF55+]
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // [FF55+]
user_pref("toolkit.telemetry.updatePing.enabled", false); // [FF56+]
user_pref("toolkit.telemetry.bhrPing.enabled", false); // [FF57+] Background Hang Reporter
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); // [FF57+]
/* 0333: disable Telemetry Coverage
 * [1] https://blog.mozilla.org/data/2018/08/20/effectively-measuring-search-in-firefox/ ***/
user_pref("toolkit.telemetry.coverage.opt-out", true); // [HIDDEN PREF]
user_pref("toolkit.coverage.opt-out", true); // [FF64+] [HIDDEN PREF]
user_pref("toolkit.coverage.endpoint.base", "");
/* 0334: disable PingCentre telemetry (used in several System Add-ons) [FF57+]
 * Defense-in-depth: currently covered by 0331 ***/
user_pref("browser.ping-centre.telemetry", false);
/* 0335: disable Firefox Home (Activity Stream) telemetry ***/
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
user_pref("browser.newtabpage.activity-stream.telemetry", false);

/** STUDIES ***/
/* 0340: disable Studies
 * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to install and run studies ***/
user_pref("app.shield.optoutstudies.enabled", false);
/* 0341: disable Normandy/Shield [FF60+]
 * Shield is a telemetry system that can push and test "recipes"
 * [1] https://mozilla.github.io/normandy/ ***/
user_pref("app.normandy.enabled", false);
user_pref("app.normandy.api_url", "");

/** CRASH REPORTS ***/
/* 0350: disable Crash Reports ***/
user_pref("breakpad.reportURL", "");
user_pref("browser.tabs.crashReporting.sendReport", false); // [FF44+]
   // user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // [FF51+] [DEFAULT: false]
/* 0351: enforce no submission of backlogged Crash Reports [FF58+]
 * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports  ***/
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [DEFAULT: false]

/** OTHER ***/
/* 0360: disable Captive Portal detection
 * [1] https://www.eff.org/deeplinks/2017/08/how-captive-portals-interfere-wireless-security-and-privacy ***/
user_pref("captivedetect.canonicalURL", "");
user_pref("network.captive-portal-service.enabled", false); // [FF52+]
/* 0361: disable Network Connectivity checks [FF65+]
 * [1] https://bugzilla.mozilla.org/1460537 ***/
user_pref("network.connectivity-service.enabled", false);

/*** [SECTION 0400]: SAFE BROWSING (SB)
   SB has taken many steps to preserve privacy. If required, a full url is never sent
   to Google, only a part-hash of the prefix, hidden with noise of other real part-hashes.
   Firefox takes measures such as stripping out identifying parameters and since SBv4 (FF57+)
   doesn't even use cookies. (#Turn on browser.safebrowsing.debug to monitor this activity)

   [1] https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/
   [2] https://wiki.mozilla.org/Security/Safe_Browsing
   [3] https://support.mozilla.org/kb/how-does-phishing-and-malware-protection-work
   [4] https://educatedguesswork.org/posts/safe-browsing-privacy/
***/
user_pref("_user.js.parrot", "0400 syntax error: the parrot's passed on!");
/* 0401: disable SB (Safe Browsing)
 * [WARNING] Do this at your own risk! These are the master switches
 * [SETTING] Privacy & Security>Security>... Block dangerous and deceptive content ***/
   // user_pref("browser.safebrowsing.malware.enabled", false);
   // user_pref("browser.safebrowsing.phishing.enabled", false);
/* 0402: disable SB checks for downloads (both local lookups + remote)
 * This is the master switch for the safebrowsing.downloads* prefs (0403, 0404)
 * [SETTING] Privacy & Security>Security>... "Block dangerous downloads" ***/
   // user_pref("browser.safebrowsing.downloads.enabled", false);
/* 0403: disable SB checks for downloads (remote)
 * To verify the safety of certain executable files, Firefox may submit some information about the
 * file, including the name, origin, size and a cryptographic hash of the contents, to the Google
 * Safe Browsing service which helps Firefox determine whether or not the file should be blocked
 * [SETUP-SECURITY] If you do not understand this, or you want this protection, then override this ***/
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
   // user_pref("browser.safebrowsing.downloads.remote.url", ""); // Defense-in-depth
/* 0404: disable SB checks for unwanted software
 * [SETTING] Privacy & Security>Security>... "Warn you about unwanted and uncommon software" ***/
   // user_pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false);
   // user_pref("browser.safebrowsing.downloads.remote.block_uncommon", false);
/* 0405: disable "ignore this warning" on SB warnings [FF45+]
 * If clicked, it bypasses the block for that session. This is a means for admins to enforce SB
 * [TEST] see https://github.com/arkenfox/user.js/wiki/Appendix-A-Test-Sites#-mozilla
 * [1] https://bugzilla.mozilla.org/1226490 ***/
   // user_pref("browser.safebrowsing.allowOverride", false);

Template giảm RAM cho PWA21

Cập nhập tiếp bài này, chú ý một điều là cái file user.js trên chỉ dành cho PWA vì tính bảo mật nó thấp hơn, không dùng cho trình duyệt chính mà có dùng phải bỏ tất những thứ liên quan tới tắt Fission đi.

Cập nhập giảm tiếp đọc ghi ổ đĩa, CPU bằng cách tăng sessionstore delay:

browser.sessionstore.idleDelay3600000
browser.sessionstore.interval3600000
browser.sessionstore.collect_zoomfalse
browser.sessionstore.privacy_level2
browser.sessionstore.restore_pinned_tabs_on_demandtrue

Giảm RAM bằng cách tắt Fast Back cache mà PWA không bao giờ dùng đến nên tự dưng ôm đồm nó phí RAM:

browser.sessionhistory.max_total_viewers0

File user.js cuối, có vẻ lần này là hết cỡ thật trừ khi trong tương lai mình nhào nặn ra cái gì khác:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
user_pref("browser.sessionstore.idleDelay", 3600000);
user_pref("browser.sessionstore.interval", 3600000);
user_pref("browser.sessionstore.collect_zoom", false);
user_pref("browser.sessionstore.privacy_level", 2);
user_pref("browser.sessionstore.restore_pinned_tabs_on_demand", true);
user_pref("browser.sessionhistory.max_total_viewers", 0);

user_pref("dom.ipc.processCount.webIsolated", 1);
user_pref("fission.webContentIsolationStrategy", 0);
user_pref("identity.fxaccounts.enabled", false);
user_pref("extensions.pocket.enabled", false);
user_pref("accessibility.force_disabled", 1);
user_pref("fission.autostart", false);
user_pref("dom.ipc.processCount", 1);
user_pref("nglayout.initialpaint.delay", 2000);
user_pref("nglayout.initialpaint.delay_in_oopif", 2000);
// Enable Multi-Account Container
user_pref("privacy.userContext.enabled", true); //enable Multi-Account Container
user_pref("privacy.userContext.ui.enabled", true); //enable Multi-Account Container

/*** [SECTION 0200]: GEOLOCATION / LANGUAGE / LOCALE ***/
user_pref("_user.js.parrot", "0200 syntax error: the parrot's definitely deceased!");
/* 0201: use Mozilla geolocation service instead of Google if permission is granted [FF74+]
 * Optionally enable logging to the console (defaults to false) ***/
user_pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
   // user_pref("geo.provider.network.logging.enabled", true); // [HIDDEN PREF]
/* 0202: disable using the OS's geolocation service ***/
user_pref("geo.provider.ms-windows-location", false); // [WINDOWS]
user_pref("geo.provider.use_corelocation", false); // [MAC]
user_pref("geo.provider.use_gpsd", false); // [LINUX]
user_pref("geo.provider.use_geoclue", false); // [FF102+] [LINUX]

/*** [SECTION 0300]: QUIETER FOX ***/
user_pref("_user.js.parrot", "0300 syntax error: the parrot's not pinin' for the fjords!");
/** RECOMMENDATIONS ***/
/* 0320: disable recommendation pane in about:addons (uses Google Analytics) ***/
user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF]
/* 0321: disable recommendations in about:addons' Extensions and Themes panes [FF68+] ***/
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
/* 0322: disable personalized Extension Recommendations in about:addons and AMO [FF65+]
 * [NOTE] This pref has no effect when Health Reports (0331) are disabled
 * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to make personalized extension recommendations
 * [1] https://support.mozilla.org/kb/personalized-extension-recommendations ***/
user_pref("browser.discovery.enabled", false);

/** TELEMETRY ***/
/* 0330: disable new data submission [FF41+]
 * If disabled, no policy is shown or upload takes place, ever
 * [1] https://bugzilla.mozilla.org/1195552 ***/
user_pref("datareporting.policy.dataSubmissionEnabled", false);
/* 0331: disable Health Reports
 * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send technical... data ***/
user_pref("datareporting.healthreport.uploadEnabled", false);
/* 0332: disable telemetry
 * The "unified" pref affects the behavior of the "enabled" pref
 * - If "unified" is false then "enabled" controls the telemetry module
 * - If "unified" is true then "enabled" only controls whether to record extended data
 * [NOTE] "toolkit.telemetry.enabled" is now LOCKED to reflect prerelease (true) or release builds (false) [2]
 * [1] https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html
 * [2] https://medium.com/georg-fritzsche/data-preference-changes-in-firefox-58-2d5df9c428b5 ***/
user_pref("toolkit.telemetry.unified", false);
user_pref("toolkit.telemetry.enabled", false); // see [NOTE]
user_pref("toolkit.telemetry.server", "data:,");
user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.newProfilePing.enabled", false); // [FF55+]
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // [FF55+]
user_pref("toolkit.telemetry.updatePing.enabled", false); // [FF56+]
user_pref("toolkit.telemetry.bhrPing.enabled", false); // [FF57+] Background Hang Reporter
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); // [FF57+]
/* 0333: disable Telemetry Coverage
 * [1] https://blog.mozilla.org/data/2018/08/20/effectively-measuring-search-in-firefox/ ***/
user_pref("toolkit.telemetry.coverage.opt-out", true); // [HIDDEN PREF]
user_pref("toolkit.coverage.opt-out", true); // [FF64+] [HIDDEN PREF]
user_pref("toolkit.coverage.endpoint.base", "");
/* 0334: disable PingCentre telemetry (used in several System Add-ons) [FF57+]
 * Defense-in-depth: currently covered by 0331 ***/
user_pref("browser.ping-centre.telemetry", false);
/* 0335: disable Firefox Home (Activity Stream) telemetry ***/
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
user_pref("browser.newtabpage.activity-stream.telemetry", false);

/** STUDIES ***/
/* 0340: disable Studies
 * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to install and run studies ***/
user_pref("app.shield.optoutstudies.enabled", false);
/* 0341: disable Normandy/Shield [FF60+]
 * Shield is a telemetry system that can push and test "recipes"
 * [1] https://mozilla.github.io/normandy/ ***/
user_pref("app.normandy.enabled", false);
user_pref("app.normandy.api_url", "");

/** CRASH REPORTS ***/
/* 0350: disable Crash Reports ***/
user_pref("breakpad.reportURL", "");
user_pref("browser.tabs.crashReporting.sendReport", false); // [FF44+]
   // user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // [FF51+] [DEFAULT: false]
/* 0351: enforce no submission of backlogged Crash Reports [FF58+]
 * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports  ***/
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [DEFAULT: false]

/** OTHER ***/
/* 0360: disable Captive Portal detection
 * [1] https://www.eff.org/deeplinks/2017/08/how-captive-portals-interfere-wireless-security-and-privacy ***/
user_pref("captivedetect.canonicalURL", "");
user_pref("network.captive-portal-service.enabled", false); // [FF52+]
/* 0361: disable Network Connectivity checks [FF65+]
 * [1] https://bugzilla.mozilla.org/1460537 ***/
user_pref("network.connectivity-service.enabled", false);

/*** [SECTION 0400]: SAFE BROWSING (SB)
   SB has taken many steps to preserve privacy. If required, a full url is never sent
   to Google, only a part-hash of the prefix, hidden with noise of other real part-hashes.
   Firefox takes measures such as stripping out identifying parameters and since SBv4 (FF57+)
   doesn't even use cookies. (#Turn on browser.safebrowsing.debug to monitor this activity)

   [1] https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/
   [2] https://wiki.mozilla.org/Security/Safe_Browsing
   [3] https://support.mozilla.org/kb/how-does-phishing-and-malware-protection-work
   [4] https://educatedguesswork.org/posts/safe-browsing-privacy/
***/
user_pref("_user.js.parrot", "0400 syntax error: the parrot's passed on!");
/* 0401: disable SB (Safe Browsing)
 * [WARNING] Do this at your own risk! These are the master switches
 * [SETTING] Privacy & Security>Security>... Block dangerous and deceptive content ***/
   // user_pref("browser.safebrowsing.malware.enabled", false);
   // user_pref("browser.safebrowsing.phishing.enabled", false);
/* 0402: disable SB checks for downloads (both local lookups + remote)
 * This is the master switch for the safebrowsing.downloads* prefs (0403, 0404)
 * [SETTING] Privacy & Security>Security>... "Block dangerous downloads" ***/
   // user_pref("browser.safebrowsing.downloads.enabled", false);
/* 0403: disable SB checks for downloads (remote)
 * To verify the safety of certain executable files, Firefox may submit some information about the
 * file, including the name, origin, size and a cryptographic hash of the contents, to the Google
 * Safe Browsing service which helps Firefox determine whether or not the file should be blocked
 * [SETUP-SECURITY] If you do not understand this, or you want this protection, then override this ***/
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
   // user_pref("browser.safebrowsing.downloads.remote.url", ""); // Defense-in-depth
/* 0404: disable SB checks for unwanted software
 * [SETTING] Privacy & Security>Security>... "Warn you about unwanted and uncommon software" ***/
   // user_pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false);
   // user_pref("browser.safebrowsing.downloads.remote.block_uncommon", false);
/* 0405: disable "ignore this warning" on SB warnings [FF45+]
 * If clicked, it bypasses the block for that session. This is a means for admins to enforce SB
 * [TEST] see https://github.com/arkenfox/user.js/wiki/Appendix-A-Test-Sites#-mozilla
 * [1] https://bugzilla.mozilla.org/1226490 ***/
   // user_pref("browser.safebrowsing.allowOverride", false);

Quick Cookie Manager: Tính năng chính là cho phép thêm, sửa, xóa cookie mà hiện tại nhiều người vẫn dùng nó để chơi trò share account premium đấy. Firefox thì có rất nhiều add-on quản lý cookie, tuy nhiên add-on quản lý cookie này mình đánh giá rất cao tại vì:

Dark Reader - Ép “Chế độ ban đêm” cho trang web (kèm hướng dẫn tối ưu)2223

Thấy nhu cầu của nhiều người dùng cần Chế độ ban đêm (Dark Reader), mà ở thời điểm hiện tại Firefox không có giải pháp tốt nhất cho chế độ này nghĩa là native (dùng chính engine WebRender để tạo màu đen cho web, hiệu năng cao nhất) nên mình sẽ viết một bài chi tiết cách sử dụng add-on này sao cho hiệu năng cao nhất.

Dark Reader thì là add-on quá nổi tiếng rồi, trong các add-on ép Chế độ ban đêm cho trang web thì thằng này là số một, đa năng nhất, lâu đời nhất, hiệu quả nhất, hiệu năng cũng nhất tuy nhiên vẫn chậm một chút, để nó hoạt động hiệu quả các bạn nên làm phần hướng dẫn bên dưới chỉnh giá trị nglayout.initialpaint.delay24 để tăng hiệu năng của nó lên hết cỡ.

Cài đặt: https://addons.mozilla.org/en-US/firefox/addon/darkreader/

Trang web sẽ đen xì như cục than như thế này đây

Để Dark Reader có hiệu năng tốt hơn, làm theo bài này:
nglayout.initialpaint.delay khiến Firefox render trang ít đi giảm tổng tiêu thụ CPU24 (Nguyên nhân25)

Chỉ vậy thôi là Dark Reader sẽ hoạt động trơn tru hơn. Nếu trang web nào nhìn không hợp lý thì chuyển qua chế độ khác như Static</span> (mặc định là Dynamic nhìn đẹp trên đa phần trang web, Static hiệu năng tốt nhất, FilterFilter+ hiệu năng rất tệ, nên tránh nếu có thể), sau đó chọn Only for ... để nó áp vào đúng trang hiện tại:

nglayout.initialpaint.delay khiến Firefox render trang ít đi giảm tổng tiêu thụ CPU24

Ngày xưa hồi mà các bài báo Việt Nam đăng ồ ạt về tối ưu Firefox ấy, thì cái nglayout.initialpaint.delay là một trong những tối ưu sai rất sai khi họ khuyên người dùng hạ xuống thấp hơn 250, thực ra để giá trị này cải thiện hiệu năng thì nên tăng lên vì Firefox giờ rất thông minh rồi, tăng lên 1000000000000 thì khi trang tải xong Firefox cũng render một chạm cả trang luôn, cơ mà mình toàn để 2000 (nghĩa là nhắc Firefox cứ làm sao thì làm, sau 2s phải hiển thị trang web dựa trên những gì đã tải được) vì nhỡ sao trang web nó bị chậm có vài file css, js tải mãi không xong thì đợi dài cổ :D

Tăng giá trị nglayout.initialpaint.delay sẽ cực kỳ hiệu quả khi dùng add-on như Dark Reader, [chi tiết] (https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-22949373).

Cách thức:

  • Mở about:config, tìm và sửa lại:
nglayout.initialpaint.delay2000
nglayout.initialpaint.delay_in_oopif2000

Ngoài ra tham khảo thêm bài này để có một cái nhìn khái quát hơn về cách Firefox render trang web cũng như tối ưu xa hơn giữa nglayout.initialpaint.delaycontent.notify.interval.

Nguyên nhân25

Mặc định là tức thì đó và giá trị tính là mili giây, 1 giây là 1000 mili giây.

Firefox hiện tại để giá trị này là 5ms, Chrome là 0ms, của mình 2000ms nghĩa là 2s render một lần, tuy nhiên nếu trang web tải xong trước 2s thì render luôn nên không ảnh hưởng đến tốc độ tải trang đâu, Firefox giờ nó khôn lắm không lãng phí thời gian render đâu.

Còn đây là cách Firefox mình render trang web (trang web luôn hiện ra ở trạng thái 100%): https://gfycat.com/AggressiveDimpledAntarcticgiantpetrel

Cũng bài viết trên này và áp dụng với người dùng của Dark Reader (https://addons.mozilla.org/vi/firefox/addon/darkreader/):

I rather like the popular Dark Reader extension — an extension which forces “dark” versions of webpages via looking at the colors used. This is useful to reduce power usage on OLED displays and for more comfortable viewing in dark environments — but it causes significant rendering slowdown on my Android phone and causes the phone to heat up. ? Instructing Firefox to delay incremental redraw appears to have done a great deal to resolve the pain of this for me.

Ordinarily, if Firefox has not downloaded a full webpage in 250 milliseconds, it tries to start rendering what it has pulled down anyway. This is a great idea if the page can be rendered quickly and not such a great idea if it’s expensive to render, since it means that it has to render a webpage multiple times. Presently, it doesn’t look like Firefox has any sort of automatic tuning of this value.

I increased the time to 2000 milliseconds.

For anyone else in the same boat:

  • Go to “about:config” in the URL bar.
  • Add an integer key “nglayout.initialpaint.delay”. At least on my browser’s installation, it did not exist and had to be added.
  • Insert the number of milliseconds that you’re willing to wait until the browser tries to render the page if it still doesn’t have a full copy downloaded. I used 2000.

Addon Dark Reader rất tiện, tuy nhiên add-on này sử dụng rất nhiều CSS và JS để thay đổi màu sắc từng vùng trên trang web (thực sự là add-on này phức tạp hơn rất nhiều người nghĩ là cứ cài vào nó biến trang web thành màu đen, nó còn phân tích màu sắc của font, các thẻ HTML lân cận để đưa ra quyết định có thay đổi màu sang đen hay không) khiến trang web phải render liên tục, tăng giá trị nglayout.initialpaint.delay sẽ giảm bớt số lần render của Firefox đi, khiến hạ bớt CPU đi khi tải trang. Tham khảo bài viết trên Reddit ở bên trên để rõ hơn:

I rather like the popular Dark Reader extension — an extension which forces “dark” versions of webpages via looking at the colors used. This is useful to reduce power usage on OLED displays and for more comfortable viewing in dark environments — but it causes significant rendering slowdown on my Android phone and causes the phone to heat up. Instructing Firefox to delay incremental redraw appears to have done a great deal to resolve the pain of this for me.

Ordinarily, if Firefox has not downloaded a full webpage in 250 milliseconds, it tries to start rendering what it has pulled down anyway. This is a great idea if the page can be rendered quickly and not such a great idea if it’s expensive to render, since it means that it has to render a webpage multiple times. Presently, it doesn’t look like Firefox has any sort of automatic tuning of this value.

I increased the time to 2000 milliseconds.

For anyone else in the same boat:

Go to “about:config” in the URL bar.

Add an integer key “nglayout.initialpaint.delay”. At least on my browser’s installation, it did not exist and had to be added.

Insert the number of milliseconds that you’re willing to wait until the browser tries to render the page if it still doesn’t have a full copy downloaded. I used 2000.

Bitwarden - Tiện ích lưu mật khẩu mã hóa đáng tin cậy!22

Bitwarden - Tiện ích lưu mật khẩu mã hóa đáng tin cậy!: Thật ra bình thường mình sẽ không giới thiệu một tiện ích lưu mật khẩu online và mình sẽ chỉ nói rằng đặt Master Password là thừa bảo mật, cơ mà Bitwarden khá đáng dùng nếu bạn cần một tiện ích giúp quản lý và đồng bộ mật khẩu trên máy bàn qua lại giữa Windows -> Linux -> Mac -> Android -> iOS và được mã hóa một chiều trên máy chủ (theo những gì người ta nói) nên dù hacker có hack được cục database thì nó cũng như một cục đất vô tri vô giác. Ngoài ra BItwarden còn hỗ trợ việc chạy máy chủ lưu mật khẩu offline luôn qua Bitwarden Vault hay Vaultwarden, và đây là lý do tại sao mình giới thiệu nó chứ không phải Lasspass.

FastForward - Bỏ qua thời gian chờ trên một số dịch vụ web22

FastForward: Bỏ qua bộ đếm bắt chờ kiểu đợi 30-60s mới được tải và bỏ qua link rút gọn trên mấy trang phổ biến, khá tiện cho ai có sở thích tải ứng dụng được chia sẻ bởi mấy ông chơi kiếm tiền online mà không muốn bị hành xác tốn thời gian.

Chú ý:Addon đã bị xóa khỏi Mozilla do bị report DMCA chơi xấu, chi tiết và cách khắc phục https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24177537

New Tab Override - Chuyển hướng trang New Tab

New Tab Override là một tiện ích mở rộng dành cho trình duyệt Firefox, thường được sử dụng để thay đổi trang tab mới (New Tab page) của trình duyệt. Điều này cho phép bạn thay đổi cách trang tab mới được hiển thị và hoạt động, tùy chỉnh nội dung hiển thị trên trang tab mới theo ý muốn của bạn.

Nguồn:

  1. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/ ↩︎ ↩︎2 ↩︎3 ↩︎4 ↩︎5 ↩︎6 ↩︎7

  2. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24996350 ↩︎

  3. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-376#post-28159390 ↩︎

  4. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24961417 ↩︎

  5. https://github.com/gorhill/uBlock/wiki/Advanced-settings#autoupdateperiod ↩︎

  6. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-25261196 ↩︎

  7. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-25582594 ↩︎

  8. https://www.reddit.com/r/HobbyDrama/comments/jo9wxn/open_source_development_the_fall_of_nano_defender/ ↩︎

  9. https://firefox-source-docs.mozilla.org/browser/tabunloader/ ↩︎

  10. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24609843 ↩︎

  11. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24766263 ↩︎

  12. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-27899373 ↩︎

  13. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-315#post-27876504 ↩︎

  14. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-315#post-27877026 ↩︎

  15. https://voz.vn/t/tong-hop-software-can-thiet-cho-may-tinh.2974/post-21105427 ↩︎

  16. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24638856 ↩︎

  17. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-25895858 ↩︎

  18. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24276732 ↩︎

  19. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-254#post-27298594 ↩︎

  20. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-234#post-26996596 ↩︎

  21. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-280#post-27524899 ↩︎

  22. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/#post-22174347 ↩︎ ↩︎2 ↩︎3 ↩︎4

  23. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-25633915 ↩︎

  24. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-38#post-23570551 ↩︎ ↩︎2 ↩︎3

  25. https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-16#post-22949373 ↩︎ ↩︎2

This post is licensed under CC BY 4.0 by the author.