A Chrome extension that locks your browser profile with a password for privacy protection. Perfect for freelancers who use separate Chrome profiles for different clients, or anyone who shares a computer and wants to protect their browsing data.
- π Password Protection: Lock your Chrome profile with a secure password
- π Auto-lock on Startup: Profile is automatically locked when Chrome starts
- β° Idle Auto-lock: Optionally lock after 5 minutes of inactivity
- π¨ Clean UI: Modern, non-intrusive lock screen overlay
- π Easy Management: Change or remove password anytime
- Google Chrome (or Chromium-based browser) version 88 or higher
- Chrome Extensions API support (Manifest V3)
-
Download the extension:
git clone https://github.com/arzumy/chrome-profile-lock.git cd chrome-profile-lockOr download as ZIP from the repository and extract it.
-
Load in Chrome:
- Open Chrome and navigate to
chrome://extensions/ - Enable Developer mode (toggle in the top right)
- Click Load unpacked
- Select the
chrome-profile-lockfolder - The extension icon will appear in your toolbar
- Open Chrome and navigate to
-
Restart Chrome to ensure the extension loads properly
- Go to
chrome://extensions/ - Enable Developer mode
- Click Pack extension
- Select the
chrome-profile-lockfolder - This creates a
.crxfile you can share - Restart the browser after installation
- Click the lock icon in your Chrome toolbar
- Enter a password (minimum 4 characters)
- Confirm the password
- Optionally enable auto-lock when idle
- Click "Set Password"
- Manual: Click the extension icon β "Lock Now"
- Automatic: Profile locks when Chrome starts
- Idle: If enabled, locks after 5 minutes of inactivity
When locked, a full-screen overlay appears. Enter your password to unlock.
Click the extension icon when unlocked to:
- Lock Now: Immediately lock the profile
- Change Password: Update your password
- Remove Password: Disable the lock feature
- This extension provides a deterrent, not absolute security
- A determined user could:
- Disable the extension via
chrome://extensions/ - Access Chrome's profile folder directly on disk
- Use Chrome's Task Manager to close extension processes
- Disable the extension via
- Using separate OS user accounts (strongest option)
- Enabling full-disk encryption (BitLocker/FileVault)
- Always locking your computer when away
- Using a password manager for sensitive accounts
- Password Storage: Password is hashed using SHA-256 before storage
- Local Storage: Hash is stored in Chrome's local storage (per-profile, never synced)
- Content Script: Injects a lock overlay on all pages when locked
- Background Service Worker: Manages lock state and idle detection
- Messaging API: Communication between components via Chrome's messaging API
- Manifest Version: 3 (MV3)
- Permissions:
storage,tabs,idle - Content Scripts: Runs on all URLs (
<all_urls>) at document start - Storage: Uses
chrome.storage.local(data stays on your device) - No Network Access: Extension operates completely offline - no data is sent to external servers
Lock screen doesn't appear?
- Refresh the page or restart Chrome
- Check if extension is enabled at
chrome://extensions/
Forgot password?
- Remove and reinstall the extension
- Or delete extension data via
chrome://extensions/β Details β Clear data
Extension not working on some pages?
- Chrome internal pages (
chrome://) don't allow content scripts - Some sites with strict CSP may block the overlay
chrome-profile-lock/
βββ manifest.json # Extension configuration (Manifest V3)
βββ background.js # Service worker (manages lock state & idle detection)
βββ content.js # Content script (injects lock overlay)
βββ lock-overlay.css # Lock screen styles
βββ popup.html # Extension popup UI
βββ popup.js # Popup functionality
βββ icons/ # Extension icons
β βββ lock-16.png
β βββ lock-48.png
β βββ lock-128.png
βββ README.md # This file
βββ SECURITY_REVIEW.md # Security analysis documentation
βββ CONTENT_JS_REVIEW.md # Content script review
βββ PERFORMANCE_OPTIMIZATIONS.md # Performance analysis
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This extension provides a deterrent for casual access to your Chrome profile. It is not designed to protect against determined attackers with physical or administrative access to your computer. For maximum security, use OS-level user accounts and full-disk encryption.
- Built with Chrome Extensions Manifest V3
- Uses Chrome Storage API for local data persistence
- Icons designed for clarity and visibility
This project was 100% built with Claude AI and Cursor. The entire codebase, documentation, and architecture were developed through AI-assisted pair programming, demonstrating the power of modern AI coding assistants.
Made with β€οΈ for privacy-conscious users