Chrome/Firefox extension that displays the total inbox item count next to the Inbox label in Outlook Web. Includes build+publish automation via the Chrome Web Store API (see PUBLISHING.md).
41 lines
No EOL
2.2 KiB
Markdown
41 lines
No EOL
2.2 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
This is a browser extension (v1.1) that enhances Outlook Web by displaying the total number of items next to the Inbox label. The extension uses a content script to monitor DOM changes and extract inbox count information from the page title.
|
|
|
|
### Version History
|
|
- **v1.1**: Fixed browser hanging issues with throttling, improved MutationObserver, enhanced DOM selectors, reduced polling frequency
|
|
- **v1.0**: Initial release
|
|
|
|
## Architecture
|
|
|
|
- **manifest.json**: Chrome extension manifest (v3) defining permissions, content scripts, and metadata
|
|
- **content.js**: Main content script that runs on Outlook Web pages, implementing:
|
|
- DOM element detection for inbox labels
|
|
- Item count extraction from page titles using regex
|
|
- Dynamic count display with styling
|
|
- MutationObserver for real-time DOM change monitoring
|
|
- Periodic refresh mechanism (every 5 seconds after initial 10-second startup)
|
|
|
|
## Development Workflow
|
|
|
|
### Testing the Extension
|
|
1. Load as unpacked extension in Chrome/Edge developer mode
|
|
2. Navigate to https://outlook.office.com or https://outlook.office365.com
|
|
3. Check browser console for debug logs starting with "Outlook Inbox Count Extension"
|
|
|
|
### Packaging
|
|
The .zip file contains the packaged extension ready for distribution.
|
|
|
|
## Key Implementation Details
|
|
|
|
- **Performance optimizations (v1.1)**: Throttling mechanism prevents excessive function calls, selective MutationObserver reduces CPU usage
|
|
- **Enhanced DOM detection**: Multiple fallback selectors and regex patterns for different Outlook Web versions
|
|
- **CSS selectors**: Primary `div[title^="Inbox -"][data-folder-name="inbox"]` with fallbacks for `button` elements and various title formats
|
|
- **Count extraction**: Multiple regex patterns including `/Inbox - (\d+) items/`, `/Inbox \((\d+)\)/`, `/(\d+) items/`
|
|
- **Duplicate prevention**: Uses `.added-count` class marking to avoid multiple count displays
|
|
- **Dynamic content handling**: Optimized interval polling (10s) and intelligent mutation observation
|
|
- **Graceful fallback**: Displays "(-)" when count unavailable |