How Fugu is the Web?
「How Fugu is the Web?」的項目標誌圖片

How Fugu is the Web?

擴充功能開發人員工具70 使用者
項目媒體「2」螢幕截圖
項目媒體「1」螢幕截圖
項目媒體「2」螢幕截圖
項目媒體「1」螢幕截圖
項目媒體「1」螢幕截圖
項目媒體「2」螢幕截圖

總覽

An extension to shine light on the Project Fugu 🐡 APIs web apps want to use.

How it works API data The raw data for the different Project Fugu 🐡 APIs is curated in a spreadsheet, which is then turned into JavaScript, so keeping the list of APIs updated is hopefully a straightforward task. API detection The extension monitors the requests a page makes via the chrome.webRequest.onBeforeRequest.addListener() API. Each response body, grouped by main frame, JavaScript, and Web App Manifest response bodies, is then run through a set of regular expressions like /navigator\.hid\.requestDevice\s*\(/g to determine if the code hints at a Project Fugu 🐡 API potentially being used. Browser support detection Most Project Fugu 🐡 APIs are easily feature-detectable by checking for the existence of interfaces or properties, for example, as in 'BarcodeDetector' in window. Other APIs require a ServiceWorkerRegistration, but luckily the popup window in Manifest V3 extensions uses a service worker, so it can be used via an IIFE that can be run in the client or the service worker. An example is (async () => 'periodicSync' in (await navigator.serviceWorker?.ready || self.registration))(). The support categories are listed below: ✔️ Supported by your browser. 🚫 Not supported by your browser. 🤷 Support unknown for your browser. (The only way to know would be user-agent sniffing.) Deep-linking The extension makes use of Text Fragment URLs to deep-link to the occurrence of a detected API, for example https://airhorner.com/scripts/main.min.js#:~:text=navigator.setAppBadge(. For main frame documents, the source code gets rendered in a helper HTML page controlled by the extension, since it is impossible to link to view-source: protocol links. Limitations • The chrome.webRequest.onBeforeRequest.addListener() API unfortunately does not "see" requests that are handled by a service worker (crbug.com/766433). There are three possible workarounds for this: - Hard-reload via ⌘/ctrl+shift+r. - Open DevTools and check the Bypass for network checkbox in the Service Worker section of the Application tab. - Clear storage in the Storage section of the Application tab. • The extension only does static code analysis, that is, there is no guarantee that the app actually uses the code snippet where a Project Fugu 🐡 API was detected. • Heavily minified code will not be detected. For example, if an app minifies navigator.clipboard.write() to const nav = navigator; nav.clipboard.write(), the extension will not detect this. License Apache 2.0.

0 分 (滿分 5 分)無評分

Google 不會驗證評論。 進一步瞭解結果與評論。

詳細資料

  • 版本
    1.17.0
  • 已更新
    2024年1月10日
  • 提供者
    Thomas Steiner
  • 大小
    125KiB
  • 語言
    English
  • 開發人員
    Thomas Steiner
    Neanderstr. 3 Hamburg 20459 Germany
    電子郵件
    steiner.thomas@gmail.com
  • 非交易商
    這位開發人員並未表明自己是交易商。歐盟地區的消費者請注意,消費者權利不適用於你和這位開發人員之間簽訂的合約。

隱私權

開發者已表示這項商品不會蒐集或使用你的資料。 詳情請參閱開發者的《隱私權政策》。

這位開發者就你的資料做出下列聲明:

  • 經核准的用途外,不會將你的資料販售給第三方
  • 不會基於與商品核心功能無關的目的,使用或轉移資料
  • 不會為了確認信用度或基於貸款目的,使用或轉移資料

支援

如有疑問或建議,請使用電腦版瀏覽器開啟這個頁面

Google 應用程式