Focus Last Selected Tab :: Provides natural / MRU tab ordering + Options for Tab Flipping, New Tab Select, and New Tab Location
FLST Chrome Revive is a modern Chrome extension that implements Most Recently Used (MRU) tab ordering to provide natural tab navigation behavior. When you close a tab or use the tab flipping feature, the extension intelligently selects the most recently used tab instead of Chrome's default behavior of selecting the adjacent tab.
- π Smart Tab Flipping: Navigate between your most recently used tabs with
Alt+N - π MRU Tab Ordering: Natural tab selection when closing tabs
- π New Tab Control: Choose where new tabs open and whether they become active
- π§ Configurable Options: Customize behavior through an intuitive options page
- β‘ High Performance: Optimized with modern service worker architecture
- π‘οΈ Minimal Permissions: Only requests essential storage permission
- π± Modern Design: Clean, responsive options interface
- Visit the Chrome Web Store page
- Click "Add to Chrome"
- Confirm the installation
- Clone this repository
- Run
npm installto install dependencies - Run
npm run build:prodto build the extension - Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked" and select the
distfolder
- Press
Alt+N(or click the extension icon) to switch between your two most recently used tabs - Perfect for quick back-and-forth navigation between related tabs
When you close a tab:
- With Tab Flipping ON: Automatically selects your most recently used tab
- With Tab Flipping OFF: Uses Chrome's default behavior (adjacent tab)
Configure what happens when you create a new tab:
- Auto-select new tabs: Choose whether new tabs become active immediately
- Tab placement: Control where new tabs appear in your tab bar
Access the options page by:
- Right-clicking the extension icon β "Options"
- Or visiting
chrome://extensions/β FLST Chrome Revive β "Details" β "Extension options"
| Setting | Description | Default |
|---|---|---|
| Tab Flipping | Enable/disable Alt+N tab switching | On |
| New Tab Select | Auto-activate newly created tabs | Off |
| New Tab Location | Where new tabs appear in the tab bar | End |
- Service Worker: Efficient background processing with automatic lifecycle management
- Message-Based Reactivation: Real-time service worker state detection (5-second intervals)
- Persistent Storage: Reliable state management with Chrome Storage API
- Type-Safe Code: Full TypeScript implementation with comprehensive type definitions
src/
βββ core/
β βββ extension-core.ts # Main extension orchestrator
βββ managers/
β βββ tab-manager.ts # MRU tab ordering and operations
β βββ window-manager.ts # Window state tracking
β βββ service-worker-manager.ts # Service worker lifecycle
β βββ settings-manager.ts # Configuration management
β βββ storage-manager.ts # Data persistence
βββ ui/
β βββ options-ui.ts # Options page interface
βββ utils/
βββ logger.ts # Debug logging utilities
- Smart Reconciliation: Automatic state recovery after service worker dormancy
- Retry Logic: Robust tab operations with drag-and-drop handling
- Minimal Memory: Efficient data structures and cleanup procedures
- Error Recovery: Graceful handling of Chrome API limitations
- Node.js 16+ and npm
- Chrome Browser
- PowerShell (for build scripts)
# Clone the repository
git clone https://github.com/kamyaw010/FLST-Chrome-Revive.git
cd flst-chrome-revive
# Install dependencies
npm install
# Development build with watch mode
npm run build:watch
# Production build
npm run build:prodnpm run build- TypeScript compilation onlynpm run build:dev- Development build with full packagingnpm run build:prod- Production build with zip generationnpm run build:watch- Watch mode for developmentnpm run build:clean- Clean all build artifacts
βββ src/ # TypeScript source code
βββ dist/ # Compiled extension files
βββ build/ # Production zip packages
βββ img/ # Extension icons
βββ options.html # Options page template
βββ options.css # Options page styles
βββ manifest.json # Extension manifest
βββ build.ps1 # PowerShell build script
βββ tsconfig.json # TypeScript configuration
- Tab flipping with
Alt+Nworks correctly - Closing tabs selects MRU tab when flipping is enabled
- New tab behavior respects configuration settings
- Options page saves and loads settings properly
- Extension survives browser restart
- Service worker reactivation functions correctly
Enable debug logging by modifying src/utils/logger.ts:
private isEnabled: boolean = true; // Enable for debugging- β Message-based service worker reactivation detection
- β Enhanced build script with production zip cleanup
- β Optimized permissions (minimal required permissions)
- β Improved error handling and retry logic
- β Type-safe activation handling with enums
- β MRU reconciliation system for service worker reactivation
- β Comprehensive tab state management
- β Enhanced window tracking
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Maintain comprehensive error handling
- Add appropriate logging for debugging
- Test across different Chrome versions
- Update documentation for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the original FLST extension concept
- Built with modern Chrome Extension Manifest V3 standards
- Uses Chrome's native APIs for optimal performance
- Issues: GitHub Issues
- Chrome Web Store: Extension Page
Made with β€οΈ for Chrome users who want better tab management