Two context-menu items: "Translate selection with OpenRead" when text is
selected, "Translate this page with OpenRead" otherwise.
Whole-page translation shipped in 2.4.0 reachable only from the toolbar popup
and Ctrl+Shift+G. Both work, and neither is where anyone looks. A user with
the extension installed opened the context menu, found Chrome's own translate
item and not this one, and asked where the feature had gone — which answers
the question of whether a popup button counts as discoverable.
The menu is rebuilt rather than appended to on every worker start, because an
MV3 worker restarts whenever it likes and contextMenus.create on an existing
id is an error.
contextMenus is the fourth permission this extension asks for, and it earns
its place the way declarativeNetRequest did in 2.5.0: one concrete job,
visible to the user, with the alternative being a feature people cannot find.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>