leetStats 的隐私政策
Privacy Policy for leetStats
Last Updated: July 31, 2025
Thank you for using leetStats. This Privacy Policy explains what information the extension accesses and how it is handled. Your privacy is my top priority.
- Philosophy: No Server, No Data Collection
leetStats operates entirely within your browser. There is no server component. I do not have a database, and I do not collect, store, or transmit any of your personal data to any external location. Everything happens on your own computer.
- Information the Extension Accesses
To provide you with statistics, leetStats needs to access certain information from LeetCode. This is done through LeetCode GraphQL APIs, the same way your browser normally would.
User Status: The extension checks if you are logged into LeetCode to activate its features. It will not function if you are logged out.
Submission History: When you navigate to your own profile page, the extension fetches your submission history (e.g., problem title, language, timestamp, status) via the API. It will not function on any profile page other than your own.
Problem Metadata: To provide details like problem difficulty and topic tags, the extension fetches metadata for the problems you have solved via the API.
Public Profile Avatar: To allow you to include your profile picture in the customizable shareable card, the extension reads the public URL of your avatar image directly from the profile page's content when you visit it.
This data is fetched directly from LeetCode's servers or read from the page into your browser and is never seen by me.
- How Information is Stored (Locally)
To improve performance and avoid re-fetching all your data every time you visit your profile, the extension uses your browser's local storage (chrome.storage.local).
Submission & Metadata Cache: Your fetched submission history and problem metadata are saved on your computer. This data is stored under a key associated with your LeetCode username, ensuring that if you use multiple LeetCode accounts in the same browser, their data remains separate.
Data Isolation: This local cache is sandboxed, meaning only the leetStats extension can access it. No other website or extension can read this data.
Clearing your browser's cache or uninstalling the extension will permanently delete this locally stored data.
- Data Fetching and Server Courtesy
All requests to the LeetCode API are made directly from your browser. These requests use your browser's active LeetCode login session (via cookies) to authenticate you, exactly as if you were browsing the site yourself. The extension never has access to your password or any other personal login information.
To ensure I do not place an excessive load on LeetCode's servers, the extension automatically includes a small delay between API requests, making the process respectful of their infrastructure.
- Extension Permissions Explained
My manifest.json requests the following permissions to function correctly:
storage & unlimitedStorage: Required to save your submission and metadata cache locally in your browser. This makes the extension faster by avoiding re-fetching data. The unlimitedStorage permission specifically ensures that users with a very high number of submissions (e.g., tens of thousands) do not hit the default browser storage limit, which could otherwise prevent the extension from working correctly.
https://leetcode.com/*: Required to fetch data from the LeetCode API and to inject the "Stats" tab and its content into the LeetCode profile page.
- Contact Me
If you have any questions about this Privacy Policy, please feel free to open an issue on my GitHub repository.