This repository contains test pages and tools to help diagnose and measure the performance issues between 1Password and Orion Browser.
-
Start the local test server:
./start-server.sh
This launches a minimal HTTP server on http://localhost:8080
-
Open the test suite in your browser:
-
Run the Automated Focus Test (recommended):
- Click "Extended Test (10 runs)"
- Wait for completion and click "Download JSON"
- Save the file to
test-processor/folder - Repeat in other browsers for comparison
-
Process your results:
./scripts/process-test-results.sh
This converts the JSON files into formatted Markdown tables.
-
Record your results:
cp test-results/TEMPLATE.md test-results/YourUsername.results.md
Paste the system info from
./scripts/collect-system-info.shand the processed results into your file.
When sharing your results:
- Copy
test-results/TEMPLATE.mdtotest-results/YourUsername.results.md - Run
./scripts/collect-system-info.shand paste the output - Export JSON from test pages, drop into
./test-processor/ - Run
./scripts/process-test-results.shand paste the formatted output - Add any additional observations
If you prefer not to use the Swift server:
# Python (if installed)
cd test-pages && python3 -m http.server 8080
# Node.js (if installed)
cd test-pages && npx serve -p 8080All test pages are located in the test-pages/ directory.
Purpose: Automated test that measures the delay between focusing an input field and when it's ready to receive keystrokes.
What it tests:
- Cold start performance (first focus after page load)
- Warm performance (subsequent focuses)
- Consistency across multiple iterations
- Username, password, and email input fields
Modes:
- Standard (5 runs): Quick test with 15 measurements
- Extended (10 runs): More thorough test with 30 measurements and a pause between batches
How to use:
- Open in Orion with 1Password enabled
- Click "Extended Test (10 runs)"
- Wait for completion and click "Download JSON"
- Repeat in other browsers (Safari, Brave, etc.) for comparison
Purpose: A simplified benchmark that creates multiple iframes with input fields to simulate Speedometer 3.1's behavior.
What it tests:
- Performance impact of repeated iframe creation with inputs
- Measures how 1Password script injection affects rendering speed
- Operations per second (higher is better)
How to use:
- Click "Run Benchmark"
- Wait for completion and click "Download JSON"
- Repeat in other browsers for comparison
-
Orion + 1Password enabled:
- Run both test pages
- Export JSON results
-
Safari + 1Password enabled:
- Run both test pages
- Export JSON results
-
Another browser (Brave, Edge, Firefox, etc.) + 1Password enabled:
- Run both test pages
- Export JSON results
- Cold Start > 100ms indicates a problem (Orion typically shows 100-200ms, others show 10-15ms)
- Warm performance should be fast across all browsers (< 20ms)
- Large gap between cold and warm suggests script initialization overhead
- Compare scores between browsers
- Lower scores in Orion vs other browsers indicate performance overhead
Serve the test pages from the project root:
# Using Swift (no dependencies, macOS only)
./scripts/serve.swift
# Using Python
python3 -m http.server 8080 -d test-pages
# Using Node.js
npx serve test-pagesThen visit http://localhost:8080/ in your browser.
Orion-1P-Troubleshooting/
├── README.md
├── .github/
│ └── copilot-instructions.md # Background info on the issue
├── scripts/
│ ├── collect-system-info.sh # System info collector script
│ ├── process-test-results.sh # JSON to Markdown processor
│ └── serve.swift # Minimal web server (no dependencies)
├── test-pages/
│ ├── index.html # Test suite landing page
│ ├── automated-focus-test.html # Input focus timing (recommended)
│ └── mini-speedometer.html # Simplified benchmark
├── test-processor/ # Drop exported JSON files here
│ └── README.md
└── test-results/
├── TEMPLATE.md # Results template
└── *.results.md # Individual test results