flutter-webview
Skill16 starsChanged 2 months agoBSD-3-ClauseView on GitHub
Implement, repair, or review embedded web content in Flutter, including navigation policy, JavaScript bridges, cookies, sessions, file flows, permissions, and WebView lifecycle. Use when a Flutter screen hosts web content; route OAuth sign-in to flutter-authentication, app routes to flutter-navigation, and broad threat audits to flutter-security.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- thiennc-tesoglobal/flutter-skillsword for word, first seen Aug 30, 2026
Other versions1 project uses a version of this.
Word for word · 1
- thiennc-tesoglobal/flutter-skills★ 16100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository39 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- dart-concurrencySkill
- dart-languageSkill
- flutter-accessibilitySkill
- flutter-ai-integrationSkill
- flutter-animationSkill
- flutter-app-workflowSkill
- flutter-architectureSkill
- flutter-authenticationSkill
- flutter-background-executionSkill
- flutter-build-releaseSkill
- flutter-ci-cdSkill
- flutter-code-reviewSkill
- flutter-dependency-upgradesSkill
- flutter-device-testingSkill
- flutter-figma-workflowSkill
- flutter-in-app-purchasesSkill
- flutter-localizationSkill
- flutter-mediaSkill
- flutter-navigationSkill
- flutter-networkingSkill
- flutter-notificationsSkill
- flutter-observabilitySkill
- flutter-openapi-clientSkill
- flutter-package-developmentSkill
- flutter-performanceSkill
- flutter-persistenceSkill
- flutter-platform-integrationSkill
- flutter-product-analyticsSkill
- flutter-responsive-layoutSkill
- flutter-runtime-debuggingSkill
- flutter-securitySkill
- flutter-state-managementSkill
- flutter-testingSkill
- flutter-text-renderingSkill
- flutter-ui-designSkill
- flutter-ui-patternsSkill
- flutter-visual-effectsSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 9 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Treat a WebView as an untrusted web runtime embedded inside a privileged application process.
- Distinctive: line 10
Do not add a WebView package, native manifest change, or domain/redirect registration merely because the skill is selected.
- Distinctive: line 16
Prefer native Flutter UI for app-owned interaction when it provides the required fidelity and accessibility.
- Distinctive: line 20
Read navigation and content policy for origin allowlists, schemes, popups, downloads, errors, external links, TLS, and browser history.
- Distinctive: line 21
Read JavaScript bridges and permissions for message schemas, origin trust, privileged actions, dialogs, media, camera or microphone …
- Distinctive: line 22
Read sessions, files, and lifecycle for cookies, account switching, logout cleanup, file chooser and download behavior, controller …
- Distinctive: line 27
Keep JavaScript disabled unless the content contract requires it.
- Distinctive: line 28
Never treat a page title, URL fragment, JavaScript message, or matching custom scheme as proof of identity, payment, authorization, or …
- Distinctive: line 31
Keep controller and callback ownership lifecycle-safe.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Flutter WebView
Treat a WebView as an untrusted web runtime embedded inside a privileged application process. Preserve the project's current WebView package, web contract, router, session owner, and supported platforms unless migration is requested.
Do not add a WebView package, native manifest change, or domain/redirect registration merely because the skill is selected.
Preflight
Read pubspec.yaml, SDK constraints, the selected WebView package and version, platform targets, platform manifests and entitlements, loaded origins and redirects, JavaScript settings and channels, cookies and website data, authentication ownership, file and permission flows, app navigation, lifecycle handling, and tests. Confirm the package's current platform support before promising cross-platform behavior; embedded web content on Flutter web can use different primitives and constraints from system WebViews on Android, iOS, or macOS.
Prefer native Flutter UI for app-owned interaction when it provides the required fidelity and accessibility. Use an embedded browser only for a concrete content or integration requirement. Do not replace the existing package with webview_flutter or another dependency by default.
Load references conditionally
- Read navigation and content policy for origin allowlists, schemes, popups, downloads, errors, external links, TLS, and browser history.
- Read JavaScript bridges and permissions for message schemas, origin trust, privileged actions, dialogs, media, camera or microphone requests, and minimal JavaScript enablement.
- Read sessions, files, and lifecycle for cookies, account switching, logout cleanup, file chooser and download behavior, controller ownership, process recreation, and platform verification.
Core rules
- Parse every navigation as a URI and decide from explicit scheme, normalized host, port, and path rules. A string prefix is not an origin check.
- Keep JavaScript disabled unless the content contract requires it. Expose the smallest typed message surface and validate every payload again in Dart before changing app state or invoking native capability.
- Never treat a page title, URL fragment, JavaScript message, or matching custom scheme as proof of identity, payment, authorization, or trusted completion. Confirm sensitive outcomes through their owning backend or platform protocol.
- Define which cookies and website data are shared, persisted, isolated, or cleared. Coordinate logout and account switching with the application session owner.
- Handle main-frame load, HTTP, TLS, renderer, permission, popup, file, download, and external-app outcomes explicitly where the selected package exposes them. Do not bypass certificate errors.
- Keep controller and callback ownership lifecycle-safe. Prevent callbacks from a disposed screen, stale navigation, or previous account from mutating current state.
Boundaries
flutter-authenticationowns OAuth or OIDC, PKCE, verified redirects, token lifecycle, logout semantics, and account switching. Native-app authorization uses an external user-agent rather than an embedded WebView.flutter-navigationowns Flutter routes, deep-link destinations, browser URL synchronization, and back-stack correctness outside the embedded page.flutter-securityowns threat modeling and repository-wide WebView hardening audits; this skill implements the scoped content, bridge, and lifecycle contract.flutter-networkingowns ordinary API transport. Do not tunnel app API behavior through JavaScript just because a WebView exists.flutter-platform-integrationowns custom native WebView capabilities or platform-view bridges when the established plugin cannot satisfy a required API.flutter-device-testingowns concrete device and emulator execution; this skill defines the WebView behaviors that must be observed.
Verification
Use deterministic local or staging content controlled for the test, plus real supported platform runtimes for system-WebView behavior. Cover allowed and blocked top-level navigation, redirects, subframes where observable, external schemes, back behavior, JavaScript disabled and enabled states, malformed and replayed messages, account switch and logout, offline and HTTP failure, process recreation, disposal during callbacks, file cancellation and invalid selection, permission denial, and download ownership as applicable.
Record the package and version, platform and OS, WebView engine, tested origins, JavaScript and data-store policy, and which provider or backend boundary was actually observed. Widget tests can verify policy functions and state ownership; they do not prove system WebView rendering, cookie persistence, chooser behavior, permissions, downloads, or navigation callbacks on a device.
Sources
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

