OutlookWebInboxCount/README.md
2026-04-09 07:57:46 +01:00

79 lines
2.8 KiB
Markdown

# Outlook Web Inbox Count
A lightweight browser extension that adds the total number of items next to
the **Inbox** label in Outlook Web, so you can see at a glance how many emails
are sitting in your inbox without having to open the folder.
By default Outlook Web only shows the unread count; this extension adds the
total item count alongside it.
## Install
- **Chrome / Edge / Brave**: [Chrome Web Store listing](https://chromewebstore.google.com/detail/mjdfjopdcoiojbjnfkpjhcnpefjknkdn)
- **Firefox**: load as a temporary add-on via `about:debugging` (the extension
is Manifest v3 and includes a `browser_specific_settings.gecko` entry).
The extension runs on:
- `https://outlook.office.com/*`
- `https://outlook.office365.com/*`
- `https://outlook.cloud.microsoft/*` (the current domain as of 2026)
## How it works
A content script (`content.js`) watches the Outlook Web DOM and the page
title for the inbox item count, then injects a small span next to the Inbox
label showing the number. It uses:
- A `MutationObserver` (scoped to `title` and `data-folder-name` attribute
changes) to react to navigation and refresh events.
- Multiple fallback selectors and regex patterns to cope with different
Outlook Web versions and locales.
- A 1-second throttle and a 15-second periodic safety check to keep CPU
usage low.
If the count cannot be determined, the extension shows `(-)` in grey rather
than nothing, so it is clear the extension is running.
## Development
The extension is three files plus icons - no build step is needed.
1. Clone the repo.
2. In Chrome, go to `chrome://extensions`, enable **Developer mode**, and
click **Load unpacked**. Select the project directory.
3. Open Outlook Web and check the DevTools console for log lines starting
with `Outlook Inbox Count Extension`.
When a new Outlook Web version breaks detection, the most likely places to
look are `findInboxElement()` and `findTotalItems()` in `content.js` - the
selector and regex lists there are the extension's knowledge of how Outlook
Web renders the inbox label and count.
## Releasing
The release process is automated via `publish.sh`, which builds the zip from
`manifest.json`, uploads it to the Chrome Web Store, and submits it for
review. The routine workflow is:
1. Bump `version` in `manifest.json` and add a changelog entry in the header
of `content.js`.
2. Run `./publish.sh`.
See [PUBLISHING.md](PUBLISHING.md) for the full reference, including the
one-time OAuth setup and troubleshooting.
## Project layout
```
manifest.json Chrome extension manifest (v3)
content.js Content script - all the logic lives here
icon16/64/128.png Extension icons
publish.sh Build + upload + publish automation
PUBLISHING.md Chrome Web Store release process reference
.env Credentials for publish.sh (gitignored)
```
## Author
Giorgio Gilestro - https://lab.gilest.ro