Picker cancel bug fixed: the overlay now stays stable during pick
What this is
The picker overlay was cancelling itself about 2 seconds into every pick. The root cause was the MutationObserver AJAX-navigation cancel, which was watching all DOM mutations and firing on the picker’s own hover mutations (tooltip text changes, outline style changes). It was treating the picker’s own activity as a page navigation and cancelling the pick.
The fix moved the picker deadline timer from the popup (which closes the instant picking starts, making its timer useless) into content.js, which owns the page context and survives the full pick. The timer was raised to 60 seconds. The MutationObserver was updated to ignore attribute and characterData mutations and picker-owned nodes, firing only on genuine childList navigation changes. The picker was verified stable through 24 seconds of deliberate hovering.
What it answers
– why does loupely lens picker cancel on its own
– why does the loupely lens overlay disappear when i hover
– loupely lens picker keeps cancelling before i click
– how does loupely lens picker timeout work
– why did my loupely lens pick fail before i clicked
Why we built it
A picker that cancels during normal hover is unusable. This was the most disruptive live-testing failure and was fixed before any other work continued.
- Picker deadline moved from popup to content.js and raised to 60 seconds; popup timer is now display-only
- MutationObserver updated to ignore attribute mutations, characterData mutations, and picker-owned nodes; fires only on genuine childList navigation