clients/libs/platform
✨ Audrey ✨ e66a1f37b5
Extract urlOriginsMatch utility and refactor senderIsInternal (#19076)
Adds urlOriginsMatch to @bitwarden/platform, which compares two URLs by
scheme, host, and port. Uses `protocol + "//" + host` rather than
`URL.origin` because non-special schemes (e.g. chrome-extension://)
return the opaque string "null" from .origin, making equality comparison
unreliable. URLs without a host (file:, data:) are explicitly rejected
to prevent hostless schemes from comparing equal.

Refactors senderIsInternal to delegate to urlOriginsMatch and to derive
the extension URL via BrowserApi.getRuntimeURL("") rather than inline
chrome/browser API detection. Adds full test coverage for
senderIsInternal.

The previous string-based comparison used startsWith after stripping
trailing slashes, which was safe in senderIsInternal where inputs are
tightly constrained. As a general utility accepting arbitrary URLs,
startsWith can produce false positives (e.g. "https://example.com"
matching "https://example.com.evil.com"). Structural host comparison
is the correct contract for unrestricted input.
2026-02-19 08:45:24 -05:00
..
src Extract urlOriginsMatch utility and refactor senderIsInternal (#19076) 2026-02-19 08:45:24 -05:00
jest.config.js Implement and extend tsconfig.base across projects (#14554) 2025-06-02 20:38:17 +00:00
package.json build: add nx configuration in libs/platform (#16546) 2025-09-23 16:33:22 -05:00
project.json build: add nx configuration in libs/platform (#16546) 2025-09-23 16:33:22 -05:00
README.md create team owned libs for billing, admin-console, platform (#7233) 2023-12-15 09:02:21 -05:00
test.setup.ts [PM-18599] Forbid unknown property and element in tests (#13556) 2025-02-25 14:02:19 -08:00
tsconfig.json Implement and extend tsconfig.base across projects (#14554) 2025-06-02 20:38:17 +00:00
tsconfig.spec.json [CL-525] Upgrade angular to v19 (#14815) 2025-06-02 13:13:31 -04:00

Platform

This lib represents the public API of the Platform team at Bitwarden. Modules are imported using @bitwarden/platform.