Benedikt Willi
d3119f0b10
Add automatic HTTPS protocol assumption for URLs
...
Feature: Smart protocol handling
- If no protocol is provided, assume https://
- URLs like 'example.com' become 'https://example.com '
- 'example.com/path' becomes 'https://example.com/path '
- Special 'about:' URLs are preserved as-is
Implementation:
- Added _normalize_url() method to Browser class
- Checks for '://' in URL to detect existing protocol
- Strips whitespace from URLs
- Applied in both new_tab() and navigate_to() methods
- Supports all URL formats (subdomains, ports, paths, queries)
URL Normalization Logic:
1. Strip leading/trailing whitespace
2. Check if URL already has a protocol ('://')
3. Check for special about: URLs
4. Otherwise prepend 'https://'
Examples:
- 'example.com' → 'https://example.com '
- 'https://example.com ' → 'https://example.com ' (unchanged)
- 'about:startpage' → 'about:startpage' (unchanged)
- 'www.example.com:8080' → 'https://www.example.com:8080 '
- 'localhost:3000' → 'https://localhost:3000 '
Tests added (10 test cases):
- test_normalize_url_with_https
- test_normalize_url_with_http
- test_normalize_url_without_protocol
- test_normalize_url_with_path
- test_normalize_url_with_about
- test_normalize_url_strips_whitespace
- test_normalize_url_with_query_string
- test_normalize_url_with_subdomain
- test_normalize_url_with_port
- test_normalize_url_localhost
Existing tests still passing (15/15)
2026-01-09 14:52:05 +01:00