<aside> ☝ https://github.com/dinhanhthi/chrome-extension-react-starter
</aside>
Chrome extension source viewer ← Sử dụng extension này để check source code của các extension khác.
Extension Reloader - Quickly reload extension. ← Lưu ý: thỉnh thoảng thay đổi manifest (vd version) thì dùng extension này ko có tác dụng, phải reload bên trong extension manager mới có tác dụng! Thỉnh thoảng ngược lại!
https://github.com/dinhanhthi/chrome-extension-ts-starter (chỉ gồm TS, ko bao gồm React)
Task Manager: check extension ram using → Options → More tools → Task manager
Keep a consistent extension id ← tránh tình trạng mỗi lần cài là 1 id khác nhau (upload lên Chrome Webtore → get public ket → đưa vào trong “key” của manifest)
OAuth với google identity (cái field "oauth2” trong manifest) ← coi source code của tabox như 1 ví dụ (dùng ext này để xem sourcecode)
💡Dùng launchWebAuthFlow
When the provider redirects to a URL matching the pattern
https://<app-id>.chromiumapp.org/*
, the window will close, and the final redirect URL will be passed to the callback function.
chrome.storage - Chrome Developers (storage to store)
Truy xuất file của extension → Manifest - Web Accessible Resources
(Không nhất thiết phải có folder ở ngoài, relate path định nghĩa trong manifest.json
← không cần /
ở đầu path, eg. popup/hello.html
)
manifest.json
(Manifest file format) : cấu trúc chung.service-worker
(chạy trong 1 môi trường riêng) chạy ngầm + ko tác động đến DOM được.content-script.js
(chạy trong 1 môi trương isolated) + có thể tác động đến DOM.popup/
: popup sau khi nhấn vào icon extension trên bar.options/
: trang sau khi chuột phải vào icon → Options → mở trang option lên!icons
: icon hiển thị. (WebP and SVG files are not supported)Giữa service-worker
và content-script
sẽ liên hệ với nhau qua messages
. Cái content-script sẽ được gọi khi vừa install extension hoặc mở tab,… hoặc được trigger từ content-script.
Ngược lại cái service-worker có thể call lệnh trong content-script qua message (phải có chỉ định tab nào lúc gọi).
Các scripts được gọi phải nằm trong 1 list permissions
(declare permissions and warn users) cụ thể + Các trang có thể gọi được thông qua các “patterns”.