Skip to content

fix: detect native playhtml and merge extension identity via CustomEvent#79

Open
spencerc99 wants to merge 2 commits intomainfrom
fix/native-playhtml-identity-merge
Open

fix: detect native playhtml and merge extension identity via CustomEvent#79
spencerc99 wants to merge 2 commits intomainfrom
fix/native-playhtml-identity-merge

Conversation

@spencerc99
Copy link
Owner

When the extension runs on a page that already uses playhtml natively, skip initializing a second instance (prevents duplicate cursors and element init errors). Instead, inject the extension's publicKey and color into the existing instance via a CustomEvent bridge that crosses Chrome's content script world boundary.

The merge preserves page-set fields (name, discoveredSites, etc.) and only overwrites publicKey and playerStyle from the extension.

  • Add data-playhtml DOM marker in playhtml init() for cross-world detection
  • Add MutationObserver wait for late-loading playhtml (Vite dev server)
  • Add playhtml:configure-identity / playhtml:ready event handshake
  • Fix configure() to re-broadcast awareness and update cursor style

When the extension runs on a page that already uses playhtml natively,
skip initializing a second instance (prevents duplicate cursors and
element init errors). Instead, inject the extension's publicKey and
color into the existing instance via a CustomEvent bridge that crosses
Chrome's content script world boundary.

The merge preserves page-set fields (name, discoveredSites, etc.) and
only overwrites publicKey and playerStyle from the extension.

- Add data-playhtml DOM marker in playhtml init() for cross-world detection
- Add MutationObserver wait for late-loading playhtml (Vite dev server)
- Add playhtml:configure-identity / playhtml:ready event handshake
- Fix configure() to re-broadcast awareness and update cursor style
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant