Author(s)
The user manual at the end has setup information and instructions.
To write slides, look at the slides in this template.

Reader(s)
To start the slide show, press ‘A’. Return to the index with ‘A’ or ‘Esc’. On a touch screen, use a 3-finger touch. Double click to open a specific slide. In slide mode, press ‘?’ (question mark) to get a list of available commands.

If it doesn't work: Slide mode requires a recent browser with JavaScript. If you are using the ‘NoScript’ add-on (Firefox or the Tor Browser), or changed the ‘site settings’ (Chrome, Vivaldi, Opera, Brave and some other browsers), or the ‘permissions for this site’ (Edge), you may have to explicitly allow JavaScript on these slides. Internet Explorer is not supported.

Leaving slide mode.

WebView quirks and testing

Niklas Merz - Apache Software Foundation

TPAC 2025
Kobe, Japan
hybrid meeting
10–14 November 2025

My name is Niklas and I work on open source projects at the ASF

Check out the notes document and help our scribe

Remote participants can hear us?

Agenda

  1. Introduction & Admin (5 min)
  2. Roll call: Who is here and what environments are we looking at? (10 min)
  3. Testing apps and plans for automations (10 min)
  4. Open discussion (30 min)
  5. Close up with minutes & follow up items

Agenda and slides are just for starting the conversation

Intros & Admin (5 mins)

https://bit.ly/webview-quirks

Who is volunteering to be a scribe?

I post the notes afterwards

Reminder policies: code of conduct, antitrust guidance

Session objectives

Why are we here?

Testing Tools

  1. CanIWebView Android - DONE
  2. CanIWebView iOS - DONE
  3. CanIWebView2 (Windows) - DONE
  4. Tauri + Servo WebView tests - EXPERIMENTAL
  5. Automation - TODO

Fundend project by NLnet Foundation.

Apps

https://caniwebview.com/apps

app store badges
WebView-CG on GitHub

Screenshots

CanIWebView Android screenshot
CanIWebView iOS screenshot

Demo on iPad?

Special Origins on WebViews

You can't use file:// these days, right?

Android

WebViewAssetLoader

  • Register domains
  • https://appassets.androidplatform.net/
  • https://mydomain.com
  • Intercept GET & path

iOS

WKURLSchemeHandler

  • Register custom URL schemes, e.g. app://
  • myapp://appcontent
  • Intercept GET & POST

Cookie Quirks on WebViews

Opening questions

Can you share a bug/inconsistency you have encountered with WebViews?

Did you need to find a workaround for something?

Interesting use cases for WebViews?

Remind you on some objectives I wrote down for this session