Last Updated: March 26, 2026
Status: Phase 1 - Initial Setup Complete
- Testing Infrastructure:
WebView-CG/webview-testing(this repo) - Test Results:
WebView-CG/webview-bcd-results(existing) - App Modifications: PRs to individual app repos
- Repository initialized with git
- npm project created with dependencies
- Project structure created
- TypeScript configuration
- Android WebView helper utilities created
- iOS WKWebView helper utilities created (stub)
- Common utilities and types defined
- Result upload mechanism implemented
- Sample Android test suite created
- GitHub Actions workflows created
- Documentation written (SETUP, ANDROID, IOS, TROUBLESHOOTING, CONTRIBUTING)
- README with project overview
- Testing the Android implementation
- iOS implementation details
- Comprehensive test coverage
- Real device testing
- Result visualization
-
Clone and Modify Android App
cd apps git clone https://github.com/WebView-CG/CanIAndroidWebView.git cd CanIAndroidWebView
- Identify the MainActivity file
- Add
WebView.setWebContentsDebuggingEnabled(true) - Add intent handling for URL parameter
- Build APK:
./gradlew assembleDebug - Test APK installation and launch
-
Test Basic Connection
- Connect Android device or start emulator
- Install modified APK
- Launch app
- Test port forwarding manually
- Verify CDP endpoint:
curl http://localhost:9222/json
-
Run First Automated Test
- Update package name in test file
- Run:
npm run test:android - Debug and fix any connection issues
- Verify collector.openwebdocs.org loads
-
Enhance Test Suite
- Add more collector feature tests
- Extract BCD (Browser Compatibility Data)
- Test various WebView settings
- Capture comprehensive device metadata
-
Create PR for Android App
- Fork CanIAndroidWebView
- Create branch:
feature/automation-support - Commit minimal changes for automation
- Write PR description with rationale
- Submit PR to WebView-CG/CanIAndroidWebView
Option A: Appium + WebDriver
- Use Appium XCUITest driver
- Standard WebDriver protocol
- More complex setup
Option B: Safari Remote Debugging
- Use ios-webkit-debug-proxy
- Direct WebKit debugging protocol
- Similar to Android approach
Option C: Safari RemoteAutomation
- Native Safari automation
- Requires Safari Technology Preview
- Most reliable but limited availability
Recommended: Start with Option A (Appium), document Option B as alternative
- Research best iOS automation approach
- Implement connection helper
- Modify iOS app for debugging
- Port Android tests to iOS
- Test on simulator
- Test on real device
- Create PR for iOS app
- ✅ Upload script created
- ✅ GitHub API integration via Octokit
- ✅ JSON result format defined
- Test upload script with real results
- Add result validation
- Create result schema documentation
- Add summary generation
- Create index/catalog of all results
- Create README in webview-bcd-results
- Document result schema
- Add GitHub Actions for validation
- Create visualization/dashboard (optional)
- ✅ Android workflow created
- ✅ iOS workflow created
- Test workflows in repository
- Configure secrets (RESULTS_UPLOAD_TOKEN)
- Set up scheduled runs
- Add status badges to README
- Run on multiple Android API levels (29, 30, 33, 34)
- Run on multiple iOS versions (16.4, 17.0, 17.4)
- Test on different device sizes
- Schedule daily/weekly runs
- ✅ Setup guide
- ✅ Android guide
- ✅ iOS guide (basic)
- ✅ Troubleshooting
- ✅ Contributing guide
- API documentation
- Architecture diagram
- Result schema documentation
- Create example project repository
- Write blog post for caniwebview.com
- Create video tutorial (screen recording)
- Submit article to MDN
- Share on Twitter/Mastodon
- Present at WebView CG meeting
- Add "Automated Testing" section
- Link to this repository
- Link to results repository
- Embed result visualizations
- Add getting started guide
- Support for Selenium WebDriver
- Support for WebDriverIO
- Windows WebView2 testing
- Test result comparison over time
- Performance benchmarking
- Accessibility testing
- Network condition simulation
- Geolocation testing
- Docker containers for reproducible environments
- Cloud device testing integration (BrowserStack, Sauce Labs)
- Result caching and deduplication
- Automated regression detection
- Modern, well-maintained
- Excellent Chrome DevTools Protocol support
- Good TypeScript integration
- Strong community
- Testing infrastructure: Reusable by community
- Apps: Keep simple and focused
- Results: Centralized data, easy to query
- Comprehensive feature detection
- Maintained by Open Web Docs
- Produces structured, useful data
- Aligns with BCD goals
Phase 1 (Android) - Target: Week 2
- Infrastructure setup complete
- Android tests run successfully
- Results uploaded to webview-bcd-results
- PR submitted to CanIAndroidWebView
Phase 2 (iOS) - Target: Week 4
- iOS tests run successfully
- Results uploaded
- PR submitted to CanIWKWebView
Phase 3 (Polish) - Target: Week 6
- CI/CD running
- Documentation complete
- Community announcement
- IMMEDIATE: Modify CanIAndroidWebView app for automation
- IMMEDIATE: Test Android WebView connection manually
- TODAY: Run first automated test
- THIS WEEK: Complete Android implementation
- NEXT WEEK: Start iOS implementation
- What is the actual package name for CanIAndroidWebView?
- What WebView settings should be tested?
- Should we test on real devices or emulators/simulators?
- How frequently should CI run? (daily/weekly/on-demand)
- What level of detail in results? (full BCD data or summary)
- Collector: https://collector.openwebdocs.org/
- Results repo: https://github.com/WebView-CG/webview-bcd-results
- Android app: https://github.com/WebView-CG/CanIAndroidWebView
- iOS app: https://github.com/WebView-CG/CanIWKWebView
- Playwright: https://playwright.dev/
- Appium: http://appium.io/