Loading Extensions in Puppeteer and Playwright
An unpacked extension needs a persistent context and paired flags, and it can still fail to load. One measured run shows why loading has to be verified, not assumed.
Browse other topics
This article lives in the editorial library. For step-by-step setup, reference material, and ongoing updates, jump into the docs section.
Category overview
This archive groups 94 articles on Platform. Use it to move from editorial reads into practical BotBrowser guidance, then continue in Platform.
Common tags in this topic
Articles
94
Latest update
Oct 13, 2026
Docs section
Platform
Three strong reads to understand this topic before diving into the full archive.
Learn how coarse connection hints help adaptive interfaces without turning network information into a stable browser identity signal.
Unified headless is Chrome with no window; the old shell is a separate binary. One measured run shows what actually changes, and what stays different from headed.
Additional guides from this topic archive.
An unpacked extension needs a persistent context and paired flags, and it can still fail to load. One measured run shows why loading has to be verified, not assumed.
What Widevine DRM exposes through EME, how CDM and provider decisions differ, and why capability signals do not prove device identity or playback.
Build a manageable, risk-based browser compatibility matrix for supported journeys, platform coverage, and release drift.
Compare Speculation Rules prefetch and prerender eligibility, activation, abandonment, credentials, side effects, and a safe fixture.
Manage Push API subscriptions from permission and endpoint creation through renewal, unsubscribe cleanup, and privacy-safe retention.
Why requestMediaKeySystemAccess returns NotSupportedError in Playwright-launched Chrome, how Widevine license requests work, and a probe to verify DRM readiness.
Present a consistent Windows browser profile on macOS or Linux, while validating the signals that remain owned by your host, network, and application.
Use setAppBadge and clearAppBadge for bounded PWA status while separating badge state from Web Push, Notification permission, and private counts.
Use Web Platform Tests, runtime checks, and bounded application assertions to build credible browser feature confidence.
Design Clipboard API writes, reads, permissions, fallbacks, and privacy checks around an explicit user action rather than an invisible clipboard probe.
Use CSS Highlight API custom highlights with accessible text, bounded ranges, selection fallbacks, and a paint contract that does not hide meaning.
Use Media Session metadata, action handlers, playback state, and accessible fallbacks without treating platform controls as proof of user intent.
Use PaymentRequest with explicit user activation, secure-context checks, cancellation handling, and a usable fallback without collecting payment credentials.
Use CompressionStream and DecompressionStream with gzip or deflate while keeping backpressure, cancellation, and data limits explicit.
Use Compute Pressure as a coarse, optional signal for reversible workload choices without turning runtime pressure into device identity.
Use anchor-name, position-anchor and position-try to place overlays, then test fallback and scroll-container boundaries without confusing layout with popover behavior.
Use EyeDropper with explicit user activation, visible cancellation, secure-context checks, and privacy-safe sRGB handling.
Use popover=auto or manual with a clear top-layer, Escape, focus, event, and fallback contract for accessible web interfaces.
Build Presentation API flows around display availability, user activation, reconnect and close states, bounded messages, and an in-page fallback.
Choose user-blocking, user-visible, or background task priorities with scheduler.postTask and verify fallbacks without overstating browser control.
Use getDisplayMedia with explicit user choice, visible indicators, revocation, and privacy limits for screen, window, and tab capture.
Coordinate document.startViewTransition with DOM state, ready and finished promises, history, abort handling, and reduced-motion fallbacks.
Coordinate VirtualKeyboard geometrychange, visualViewport measurements, and keyboard insets so fixed actions stay reachable without confusing overlay and resize modes.
Build Web MIDI flows around user activation, permission, port changes, bounded messages, metadata minimization, and a reliable non-MIDI fallback.
Request Web Serial access from a user action, separate permission from port readiness, bound streams, handle disconnects, and keep a safe fallback.
Design a Web Share Target PWA that validates GET and POST ingress, limits data retention, and keeps a safe fallback.
Request WebHID access from a user action, validate collections and reports, handle disconnects, and keep device metadata out of identity profiles.
Use Window Management with explicit permission, activation, topology-change handling, and a privacy-safe single-screen fallback.
A DRM capability overview for Widevine and EME: four checkpoints in order, which value to record at each, and where the browser evidence stops.
Map rendering, script execution, network negotiation, and capability access into one bounded platform consistency review that records a difference, not a verdict.
Run authorized Android-family browser QA with consistent touch, viewport, media, permissions, and platform behavior on managed infrastructure.
Keep numeric values trustworthy across IEEE-754 Number, BigInt, JSON serialization, and browser runtime fallbacks.
A practical guide to delegating browser features to embedded frames, separating policy checks from permissions, CSP, and cross-origin isolation.
Use browser speech synthesis as an optional, user-controlled enhancement while keeping readable text, keyboard access, and reliable fallbacks.
Trace a web standard from public intent to bounded browser evidence without confusing availability with quality.
Probe runtime capabilities, classify validate, compile, and instantiate failures, and deliver a fallback while preserving user input.
Design a bounded WebGPU recovery flow that preserves page state and prevents stale asynchronous work from replacing a newer GPU device.
Review profile-backed consistency across runtime, permissions, workers, rendering, fonts, media, navigation, and mobile browser behavior.
Decide which URLs must stay isolated, which resource class each policy owns, and how a staged rollout returns to the previous header set when a journey breaks.
Validate browser profiles across headless and headed sessions with consistent platform identity, storage policy, rendering, and user journeys.
Design browser contexts that recover from crashes, network interruptions, and maintenance while keeping storage ownership and validation evidence consistent.
A repeatable method for comparing browsers on the same product journeys, evidence, and support boundaries.
Turn browser release notes into bounded compatibility checks, rollout decisions, and fallback evidence.
Separate headless display limits, CDM availability, robustness and license policy with a reproducible Widevine troubleshooting matrix.
Understand the boundary between extension content scripts and page JavaScript, how isolated worlds affect APIs and DOM, and how to test the boundary safely.
Learn how Document Picture-in-Picture creates a same-origin document window, why user activation matters, and how to keep an accessible fallback.
Coordinate same-origin browser contexts with BroadcastChannel while preserving close, reload, fallback, and privacy boundaries.
Use the Idle Detection API with clear user intent, explicit permission handling, and a strict distinction between browser idle state and application presence.
Manage screen wake locks with visibility recovery, explicit release, and a useful fallback when browser mediation ends the lock.
Build Web Share controls around capability checks, transient activation, validation, cancellation, and accessible fallback.
Understand how the browser back-forward cache restores pages, which lifecycle events matter, and how to protect private state without breaking navigation.
A practical, standards-based fixture for same-document and cross-document Navigation API transitions, history state, event ordering, privacy boundaries, and fallbacks.
Understand OPFS origin isolation, file handles, worker access, quota outcomes, and privacy-safe validation in one repeatable test.
Understand Origin-Agent-Cluster opt-in and opt-out behavior, same-origin and subdomain grouping, deployment consistency, and safe validation.
A standards-led guide to Permissions Policy, browser capability checks, and privacy-aware embedded feature tests.
Use Referrer-Policy and observed Referer headers to reason about same-origin, cross-origin, HTTPS-to-HTTP downgrades, redirects, and privacy-safe navigation.
Use the Web Locks API to coordinate tabs, windows, and workers without confusing browser locks with distributed server locks.
Use WebTransport deliberately: distinguish secure-origin API support, stream semantics, server policy, and what BotBrowser can and cannot observe.
Use public browser compatibility data, runtime checks, and privacy-aware fallbacks to keep web tasks usable.
Use bounded retries, checkpoints, and privacy-aware ownership to recover browser work after a network interruption without duplicating side effects.
A standards-based migration from brittle User-Agent parsing to Client Hints: what reduction and deprecation change, and why UA sniffing still breaks.
Understand which realm owns a browser API and why reflection is a bounded compatibility observation, not an identity signal.
Design and review Worker and OffscreenCanvas workflows with clear lifecycle, rendering, accessibility, and privacy boundaries.
Why a browser API being present is only the start of a reliable, accessible, privacy-aware user journey.
Review custom elements and Shadow DOM across browser releases with a controlled fixture, visible assertions, and a clear release decision.
Keep Window, Worker, and iframe observations within clear realm boundaries without treating JavaScript objects as an identity signal.
A browser engine renders pages; a browser product adds updates, settings, and support. Separate the two before you compare any two browsers.
Understand what field and laboratory Web Vitals measure, compare LCP, INP, and CLS responsibly, and turn aggregate evidence into product decisions.
Measure owned application journeys with marks and measures, interpret noisy results, and keep timing data privacy-safe.
A practical guide to diagnosing cross-origin fetches without confusing CORS with network reachability, authorization, CSP, or Permissions Policy.
Manage color spaces, wide-gamut displays, contrast, and accessible fallbacks across real browser contexts.
Observe owned performance entries, aggregate useful health signals, and control observer overhead without persistent user profiling.
Understand origin identity, same-origin restrictions, embedded content, and site isolation without confusing browser policy with server authorization.
A stepwise fix for the not cross-origin isolated error: set COOP and COEP, gate each embedded resource, verify SharedArrayBuffer on production hostnames, and keep a rollback path.
Evaluate origin trials with explicit enrollment, runtime detection, fallback, and rollback boundaries.
Understand secure-context eligibility, permissions, policy and origin boundaries, plus a deterministic deployment test for advanced browser features.
Keep instants, calendar dates, time zones, and locale presentation separate so browser date formatting remains correct across regions and daylight-saving changes.
navigator.hardwareConcurrency is a hint, not a spec. Learn to cap worker pools from measured saturation, keep a sequential fallback, and record reviewable assumptions.
navigator.languages returns ordered browser language hints. Learn a negotiation order that respects explicit choice and keeps a complete fallback.
Use optional network hints for reversible resource choices, with standards-aware fallbacks, privacy limits, and BotBrowser boundaries.
How navigator.canShare() and navigator.share() decide whether a share is accepted, where permissions and file limits differ, and how to test both.
Use reduced-motion, contrast, forced-colors, and color-scheme preferences as accessible defaults while keeping clear, user-visible controls.
How WebAssembly portability works, which platform differences are expected, and how to test modules across browser releases without confusing correctness with speed.
Use browser Intl formatting for dates and numbers while respecting language choices, time zones, locale-data differences, and accessible fallbacks.
What ECMAScript guarantees about Math, where implementations retain latitude, and how to test portable numeric behavior without treating results as identity.
Design resilient pointer interactions for mouse, touch, and pen while preserving keyboard access, clear targets, and predictable cancellation.
Plan coherent browser profiles across mobile and desktop environments while respecting legitimate platform differences, privacy, and user expectations.
A practical deployment evaluation for validating browser profiles, hosts, runtime cost, and rollout ownership across platforms.
A practical review model for mobile browser profiles, covering viewport states, keyboard and touch journeys, release pairing, evidence, and maintenance cadence.
Plan authorized browser QA with consistent mobile, tablet, and desktop profiles across display, input, media, and platform behavior.
Why a browser profile, not the host operating system, should define browser identity, and how to check that it holds on Windows, macOS, and Linux hosts.
Chinese, Japanese, and Korean font families, fallback chains, and text metrics can reveal the host OS. Learn what differs and what consistent output needs.
Load a profile, keep the signals you just read about consistent inside the browser, and confirm the result on your own machine before a rollout.