Change theme
Help
Press space for more information.
Show links for this issue (Shortcut: i, l)
Copy issue ID
Previous Issue (Shortcut: k)
Next Issue (Shortcut: j)
Sign in to use full features.
Vote: I am impacted
Notification menu
Refresh (Shortcut: Shift+r)
Go home (Shortcut: u)
Use Markdown for this comment
Set severity, which reflects how much the issue affects the use of the product
Assign issue to yourself
Pending code changes (auto-populated)
[ID: 84651]
Story points rate the relative effort of work in a Fibonacci-like format: 0, 0.5, 1, 2, 3, 5, 8, 13, 20, 40, 100. Each team will estimate work on a slightly different scale, which means the values in this field are likely only meaningful to the team that owns the Buganizer component in which the issue resides.
See Atlassian's Agile Coach for more information on how to use story points for estimation: https://www.atlassian.com/agile/project-management/estimation [ID: 746686]
Set the version(s) of the product affected by this issue (comma-separated list)
Set the version(s) of the product in which the issue should be fixed (comma-separated list)
Set the version(s) of the product in which the issue fix was verified (comma-separated list)
Set if this issue occurs in production
[ID: 85206]
Set Reporter
Set Type
Set priority, which reflects how soon the issue should be fixed
Set Status
Set Assignee
Set Verifier
Remove item
View or edit staffing
View issue level access limits(Press Alt + Right arrow for more information)
Description
#1Device: Sony Bravia 2015
Minimum API: 21
We recently upgraded our IMA SDK to v3.35.1 and along with it, added the pre-initialisation of SDK by calling ImaSdkFactory.initialize(). After going into production, we have started to receive crashes from a few devices whose stack trace points to those devices either having the WebView disabled or not having a WebView altogether.
The stack trace is as follows:
Caused by android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
at android.webkit.WebViewFactory.getWebViewContextAndSetProvider(WebViewFactory.java:339)
at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:402)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:252)
at android.webkit.WebView.getFactory(WebView.java:2576)
at android.webkit.WebView.getWebViewClassLoader(WebView.java:2369)
at androidx.webkit.internal.ApiHelperForP.getWebViewClassLoader(ApiHelperForP.java:92)
at androidx.webkit.internal.WebViewGlueCommunicator.getWebViewClassLoader(WebViewGlueCommunicator.java:106)
at androidx.webkit.internal.WebViewGlueCommunicator.fetchGlueProviderFactoryImpl(WebViewGlueCommunicator.java:66)
at androidx.webkit.internal.WebViewGlueCommunicator.createGlueProviderFactory(WebViewGlueCommunicator.java:81)
at androidx.webkit.internal.WebViewGlueCommunicator$LAZY_FACTORY_HOLDER.<clinit>(WebViewGlueCommunicator.java:55)
at androidx.webkit.internal.WebViewGlueCommunicator.getFactory(WebViewGlueCommunicator.java:45)
at androidx.webkit.internal.ApiFeature$LAZY_HOLDER.<clinit>(ApiFeature.java:113)
at androidx.webkit.internal.ApiFeature.isSupportedByWebView(ApiFeature.java:92)
at androidx.webkit.internal.ApiFeature.isSupported(ApiFeature.java:70)
at androidx.webkit.internal.WebViewFeatureInternal.isSupported(WebViewFeatureInternal.java:577)
at androidx.webkit.internal.WebViewFeatureInternal.isSupported(WebViewFeatureInternal.java:543)
at androidx.webkit.WebViewFeature.isFeatureSupported(WebViewFeature.java:567)
at com.google.ads.interactivemedia.v3.internal.zzgh.zzb(com.google.ads.interactivemedia.v3:interactivemedia@@3.35.1:7)
at com.google.ads.interactivemedia.v3.internal.zzgh.zza(com.google.ads.interactivemedia.v3:interactivemedia@@3.35.1:4)
at com.google.ads.interactivemedia.v3.api.ImaSdkFactory.initialize(com.google.ads.interactivemedia.v3:interactivemedia@@3.35.1:1)
We are going ahead with handling this on client side by checking whether WebView is available for the device or not. But, I would rather have had the documentation explicitly mentioning this or the SDK handling this case altogether as this came with a bit of surprise.
Steps to reproduce:
- Navigate to System Apps and disable Android WebView
- Call ImaSdkFactory.initialize() on App Start
- The app crashes
What happened:
- The app crashes upon calling ImaSdkFactory.initialize() since a WebView or a valid WebView provider wasn't available
What you think the correct behavior should be.
- The documentation/Release history should've mentioned handling this case or the SDK itself should've handled the scenario by resulting the initialisation into a No-op.
Is this a security related issue?
- No