This page is a practical training lab. Goal: understand when to use
openTab, navigate and command,
see the expected message shape, and recognize common failures quickly without relying on outdated habits.
allowlistAdd as legacy compatibility, not the normal path.
This lab uses only official helpers from ../RTO_helpers/.
The mandatory file is RTO_form_api.js.
Why this step exists
Remote actions only work if the extension is detected and this host is authorized. This step validates your environment before you spend time debugging selectors.
If this host is not allowlisted in the extension popup, detection can fail with timeout.
Checking…
tabKey.
Use this to train yourself to read failures fast. In real projects, time is lost when
developers only check ok and ignore error.code and requestId.
{/* choose a scenario and click “Generate sample response” */}
Expected pattern: { ok:true, data } or
{ ok:false, error:{code,message} } with the same requestId.
Tip: classify errors by category first:
connectivity (EXT_NOT_DETECTED), policy (DOMAIN_NOT_ALLOWED),
timing (TIMEOUT), selector/data issues.
Logs are your timeline. Keep them concise and structured:
when, action, tabKey, requestId, result.
[log console ready]
Recommended level: info for normal runs, debug only while diagnosing.
This section helps you represent a multi-step flow as JSON. It is not auto-executed here.
Think of this as “design before coding”: if your scenario JSON is unclear, your implementation will also be unclear.
#result-note on tab A
with a timeout of 8 s.
#result-json on tab A.
INGEST_RESULT command.
{/* click “Build scenario JSON” to see a structured version of the steps */}
The lab doesn’t execute this scenario; it shows how you might encode it as data and feed it to an orchestrator that processes steps with retries and error handling.
Good practice: each step should declare its input, expected output, and retry policy.