<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sz-chrome-remote-extension.git/test-suite/manifest.json, branch master</title>
<subtitle>pi-chrome, patched to drive a signed-in browser on another host through a broker, with an MCP server
</subtitle>
<id>https://git.soarez.net/sz/sz-chrome-remote-extension.git/atom?h=master</id>
<link rel='self' href='https://git.soarez.net/sz/sz-chrome-remote-extension.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/sz-chrome-remote-extension.git/'/>
<updated>2026-09-10T13:57:16+00:00</updated>
<entry>
<title>Improve Chrome input reliability and release 0.15.49</title>
<updated>2026-09-10T13:57:16+00:00</updated>
<author>
<name>Tianren Dong</name>
<email>tianrendong.dtr@gmail.com</email>
</author>
<published>2026-09-10T13:31:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/sz-chrome-remote-extension.git/commit/?id=ec23b553a245d3d57f428d03002ed77a785d300a'/>
<id>urn:sha1:ec23b553a245d3d57f428d03002ed77a785d300a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Enforce hard background and release 0.15.48</title>
<updated>2026-09-10T03:48:50+00:00</updated>
<author>
<name>Tianren Dong</name>
<email>tianrendong.dtr@gmail.com</email>
</author>
<published>2026-09-10T03:37:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/sz-chrome-remote-extension.git/commit/?id=c1f230eeb76aaa50e98d3fe7d838573612b6e36f'/>
<id>urn:sha1:c1f230eeb76aaa50e98d3fe7d838573612b6e36f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>0.15.29: CSP bypass via CDP Runtime.evaluate for evaluate/snapshot/waitFor/initScript</title>
<updated>2026-05-31T18:19:04+00:00</updated>
<author>
<name>Tianren Dong</name>
<email>tianrendong.dtr@gmail.com</email>
</author>
<published>2026-05-31T18:19:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/sz-chrome-remote-extension.git/commit/?id=d21ebf7b96c90943ab48ffcd6d5b02c6f7438c04'/>
<id>urn:sha1:d21ebf7b96c90943ab48ffcd6d5b02c6f7438c04</id>
<content type='text'>
- evaluateInTab/executeInTab now run through CDP Runtime.evaluate instead of
  new Function() in MAIN world, so chrome_evaluate/chrome_snapshot work on pages
  that block unsafe-eval (github.com, many bank/SaaS apps). Preserves value
  markers (undefined/function/symbol/bigint/Error), DOMRect expansion, and the
  expression/statement fallback; keeps {ok,value} error envelope.
- page.waitFor polls via service-worker-side CDP evaluation.
- chrome_navigate initScript uses Page.addScriptToEvaluateOnNewDocument.
- Add npm test (test-suite/unit/csp-eval.test.mjs) and in-browser regression
  challenge 42 strict-csp-evaluate; update challenge 39 notes + docs/primer.
</content>
</entry>
<entry>
<title>0.15.25: fix reload after stale singleton</title>
<updated>2026-05-16T18:01:00+00:00</updated>
<author>
<name>Tianren Dong</name>
<email>tianrendong.dtr@gmail.com</email>
</author>
<published>2026-05-16T18:01:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/sz-chrome-remote-extension.git/commit/?id=b792f22f2c2ef4dfb7bd300e7381a186e34e0c18'/>
<id>urn:sha1:b792f22f2c2ef4dfb7bd300e7381a186e34e0c18</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pi-chrome: snapshot pre-migration state</title>
<updated>2026-05-13T11:29:41+00:00</updated>
<author>
<name>Tianren Dong</name>
<email>tianrendong.dtr@gmail.com</email>
</author>
<published>2026-05-13T11:29:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/sz-chrome-remote-extension.git/commit/?id=4c54b05dc15b81e449dc8ac53da8bae536fa2798'/>
<id>urn:sha1:4c54b05dc15b81e449dc8ac53da8bae536fa2798</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pi-chrome 0.14.2: recover from foreign-extension input overlays</title>
<updated>2026-05-13T06:35:01+00:00</updated>
<author>
<name>Tianren Dong</name>
<email>tianrendong.dtr@gmail.com</email>
</author>
<published>2026-05-13T06:35:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/sz-chrome-remote-extension.git/commit/?id=26ab0d36e45b1b65f667d4743eb30e83389ff57f'/>
<id>urn:sha1:26ab0d36e45b1b65f667d4743eb30e83389ff57f</id>
<content type='text'>
When a different Chrome extension (password manager, autofill popup,
etc.) anchors an overlay to the focused input, Chrome's CDP refuses
our Input.dispatchMouseEvent with 'Cannot access a chrome-extension://
URL of different extension'. The CDP target list shows the foreign
chrome-extension:// URL as type:'other' attached to the same tab.

New behaviour in cdp() wrapper:
1. On that specific error for any Input.* call, snapshot CDP targets
   to identify the offending extension id and log it (foreign-ext-
   detected event added to ring buffer).
2. Send Esc via Input.dispatchKeyEvent (key dispatch routes by focus,
   not coordinates, so it bypasses the overlay) to dismiss the popup.
3. Retry the original Input.* call once.
4. If retry still fails, throw a clear error naming the foreign
   extension id and listing three concrete workarounds: disable that
   extension on the page, use Tab-to-focus instead of clicking, or
   run /chrome quiet off.
</content>
</entry>
</feed>
