Igalia/wolvic

Self signed certificates don't lead to error but just to blank page

Opened this issue · 2 comments

Configuration

Wolvic version: Wolvic Chromium 1.1
Wolvic build ID: 183021044

Hardware: Quest 3

Steps to Reproduce

  1. Open a self-signed HTTPS website or a website with an expired certificate

Current Behavior

Get a blank page, no content, no error or warning

Expected Behavior

Expect a warning or error message, ideally allowing to accept and go through anyway

Possible Solution

Follow what the Quest or Chrome or Firefox do, namely provide the option to accept temporarily the certificate after showing the problem

Context

Developing content often means self-hosting on LAN urls, e.g. https://192.168.0.123:3000/index.html and providing HTTPS is required to get WebXR.

Error Logs and Stack Traces

I'm debugging this. One thing I noticed is that there's an onLoadError() that returns the result of error page:

@Override
public WResult<String> onLoadError(@NonNull WSession session, @Nullable String uri, @NonNull WWebRequestError error) {
Log.d(LOGTAG, "Session onLoadError: " + uri);
return WResult.fromValue(InternalPages.createErrorPageDataURI(mContext, uri, error.code()));
}

However, the returned result of this function is not used in the Chromium implementation:

navigationDelegate.onLoadError(mSession, failingUrl.getSpec(), new WWebRequestError() {

Seems like it should be used somewhere to show the error page?

I'm debugging this. One thing I noticed is that there's an onLoadError() that returns the result of error page:

@Override
public WResult<String> onLoadError(@NonNull WSession session, @Nullable String uri, @NonNull WWebRequestError error) {
Log.d(LOGTAG, "Session onLoadError: " + uri);
return WResult.fromValue(InternalPages.createErrorPageDataURI(mContext, uri, error.code()));
}

However, the returned result of this function is not used in the Chromium implementation:

navigationDelegate.onLoadError(mSession, failingUrl.getSpec(), new WWebRequestError() {

Seems like it should be used somewhere to show the error page?

Yes, I think we could use the same error page as with gecko