satyajit
satyajit

Reputation: 1570

Android 4.4.3 web view doesn't follow redirects anymore

Our hybrid app uses web views and starting with android version 4.4.3 on of the web views do not render. The app tries to load a HTTPS web view and just stays there for about 50 seconds after which it throws an exception similar to this one Android Fatal signal 11 (SIGSEGV) at 0x636f7d89 (code=1). How can it be tracked down?. Obviously we went down the path suggested in this SO to not much avail.

With our experiments we have determined the following

  1. The last HTTP request/response (which does the redirect) is same with version 4.4.2 and 4.4.3. We verify this in charles proxy.
  2. After the redirect 4.4.2 creates the cart(SSL) request/response but 4.4.3 doesn't even create a request.
  3. Chrome remote debugging is of no help, the inspect just shows a blank screen.
  4. The version of the chrome browser on the device doesn't matter.
  5. The redirect code we are using is 302.
  6. All the previous android versions work alright

Though initially we thought its a lollipop/ART specific bug it doesn't look like that anymore. Any ideas on how should we proceed?

Actually crash happens at this location libwebviewchromium.so

Also the tombstone file is at - https://gist.github.com/prolificcoder/ebd82081b47640a3cae2

tombstone from device - https://gist.github.com/anonymous/2a6a28b2ec976075f587

Logcat logs - https://slack-files.com/T02RAT9SZ-F0351N4NW-997f5c

Upvotes: 3

Views: 1186

Answers (2)

satyajit
satyajit

Reputation: 1570

Ok turns out the solution for the problem is in the layout. We didn't have android:orientation="vertical" before and I think the crash is happening when webview is trying to fit everything in the narrow space and somewhere while rendering fonts the app crashes.

Another dev discovered this while trying to create a better repro and observed the lint warnings in the sample project, strangely enough these didn't show up in the original app

<LinearLayout
android:id="@+id/webView_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<ProgressBar
    android:id="@+id/progress_bar"
    android:layout_width="fill_parent"
    android:max="100" />

<WebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

I don't know how this would help any other person but lesson learned is that a layout messup can cause problems down the line

Upvotes: 0

marcin.kosiba
marcin.kosiba

Reputation: 3231

It looks like the Note3 libwebviwewchromium.so doesn't match the one you can build from AOSP but the x86 one does, so here is the symbolized stack.

Unfortunately it looks like you found a bug in Blink, the rendering engine used by the WebView. Whatever page you're trying to load seems to crash the WebView killing your app along with it. Could you verify that loading that particular URL in a different WebView (write a trivial WebView app or use a WebView-based browser) also crashes? If so then it would be ideal if you could share the URL or isolate the offending bit of HTML/CSS/JS and share that.

Upvotes: 2

Related Questions