
Browserenginekit
Build alternative browser engines using BrowserEngineKit.
Install
npx skills add dpearson2699/swift-ios-skills --skill browserenginekit -g -a claude-code -y- Repository
- dpearson2699/swift-ios-skills1.3k
- Category
- Mobile
- Updated
- 3mo ago
- License
- See repository
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
Build alternative browser engines using BrowserEngineKit. Use when developing a non-WebKit browser engine for iOS/iPadOS in supported regions, managing web content/rendering/networking extension processes, configuring GPU and networking process capabilities, checking alternative-engine device eligibility, or reviewing BrowserEngineKit entitlements and Info.plist setup.
BrowserEngineKit
Framework for building web browsers with alternative (non-WebKit) rendering engines on iOS and iPadOS. Provides process isolation, XPC communication, capability management, and system integration for browser apps that implement their own HTML/CSS/JavaScript engine. Examples target Swift 6.3 and current Apple SDKs.
BrowserEngineKit is a specialized framework. Alternative browser engines are available only through Apple-approved entitlement profiles and supported-region device eligibility. EU support applies to eligible users on iOS 17.4+ and iPadOS 18+; Japan support starts with iOS 26.2 and adds explicit PAC/MIE security requirements for browser apps. Development and testing can occur anywhere. The companion frameworks BrowserEngineCore (low-level primitives) and BrowserKit (eligibility checks, data transfer) support the overall workflow.
Contents
- Overview and Eligibility
- Entitlements
- Architecture
- Process Management
- Extension Types
- Capabilities
- Layer Hosting and View Coordination
- Text Interaction
- Sandbox and Security
- Downloads
- Common Mistakes
- Review Checklist
- References
Overview and Eligibility
Eligibility Checking
Use BEAvailability from the BrowserKit framework to check whether the device
is eligible for alternative browser engines. BEAvailability is available on
iOS/iPadOS 18.4+:
import BrowserKit
do {
let eligible = try await BEAvailability.isEligible(for: .webBrowser)
guard eligible else { return /* fall back or explain */ }
// Device supports alternative browser engines
} catch {
// Handle eligibility lookup failure
}
