public final class android.webkit.WebViewFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.webkit.WebViewFactory
  super_class: java.lang.Object
{
  private static final java.lang.String CHROMIUM_WEBVIEW_FACTORY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.webview.chromium.WebViewChromiumFactoryProviderForP"

  private static final java.lang.String CHROMIUM_WEBVIEW_FACTORY_METHOD;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "create"

  public static final java.lang.String CHROMIUM_WEBVIEW_VMSIZE_SIZE_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "persist.sys.webview.vmsize"

  private static final java.lang.String LOGTAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "WebViewFactory"

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static android.webkit.WebViewFactoryProvider sProviderInstance;
    descriptor: Landroid/webkit/WebViewFactoryProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.Object sProviderLock;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static android.content.pm.PackageInfo sPackageInfo;
    descriptor: Landroid/content/pm/PackageInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.Boolean sWebViewSupported;
    descriptor: Ljava/lang/Boolean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean sWebViewDisabled;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.String sDataDirectorySuffix;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public static final int LIBLOAD_SUCCESS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int LIBLOAD_WRONG_PACKAGE_NAME;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int LIBLOAD_ADDRESS_SPACE_NOT_RESERVED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int LIBLOAD_FAILED_WAITING_FOR_RELRO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int LIBLOAD_FAILED_LISTING_WEBVIEW_PACKAGES;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int LIBLOAD_FAILED_TO_OPEN_RELRO_FILE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int LIBLOAD_FAILED_TO_LOAD_LIBRARY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  public static final int LIBLOAD_FAILED_JNI_CALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final int LIBLOAD_FAILED_WAITING_FOR_WEBVIEW_REASON_UNKNOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int LIBLOAD_FAILED_TO_FIND_NAMESPACE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static java.lang.String WEBVIEW_UPDATE_SERVICE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 63
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic android.webkit.WebViewFactory.sProviderLock:Ljava/lang/Object;
         1: .line 509
            ldc "webviewupdate"
            putstatic android.webkit.WebViewFactory.WEBVIEW_UPDATE_SERVICE_NAME:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.webkit.WebViewFactory this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.webkit.WebViewFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/webkit/WebViewFactory;

  private static java.lang.String getWebViewPreparationErrorReason(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int error
         0: .line 91
            iload 0 /* error */
            tableswitch { // 3 - 8
                    3: 1
                    4: 2
                    5: 4
                    6: 4
                    7: 4
                    8: 3
              default: 4
          }
         1: .line 93
      StackMap locals:
      StackMap stack:
            ldc "Time out waiting for Relro files being created"
            areturn
         2: .line 95
      StackMap locals:
      StackMap stack:
            ldc "No WebView installed"
            areturn
         3: .line 97
      StackMap locals:
      StackMap stack:
            ldc "Crashed for unknown reason"
            areturn
         4: .line 99
      StackMap locals:
      StackMap stack:
            ldc "Unknown"
            areturn
        end local 0 // int error
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  error  I
    MethodParameters:
       Name  Flags
      error  

  private static boolean isWebViewSupported();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 110
            getstatic android.webkit.WebViewFactory.sWebViewSupported:Ljava/lang/Boolean;
            ifnonnull 4
         1: .line 111
            invokestatic android.app.AppGlobals.getInitialApplication:()Landroid/app/Application;
            invokevirtual android.app.Application.getPackageManager:()Landroid/content/pm/PackageManager;
         2: .line 112
            ldc "android.software.webview"
            invokevirtual android.content.pm.PackageManager.hasSystemFeature:(Ljava/lang/String;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
         3: .line 111
            putstatic android.webkit.WebViewFactory.sWebViewSupported:Ljava/lang/Boolean;
         4: .line 114
      StackMap locals:
      StackMap stack:
            getstatic android.webkit.WebViewFactory.sWebViewSupported:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void disableWebView();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 121
            getstatic android.webkit.WebViewFactory.sProviderLock:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 122
            getstatic android.webkit.WebViewFactory.sProviderInstance:Landroid/webkit/WebViewFactoryProvider;
            ifnull 5
         2: .line 123
            new java.lang.IllegalStateException
            dup
         3: .line 124
            ldc "Can't disable WebView: WebView already initialized"
         4: .line 123
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 126
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_1
            putstatic android.webkit.WebViewFactory.sWebViewDisabled:Z
         6: .line 121
            aload 0
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 0
            monitorexit
         9: athrow
        10: .line 128
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any

  static void setDataDirectorySuffix(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String suffix
         0: .line 134
            getstatic android.webkit.WebViewFactory.sProviderLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 135
            getstatic android.webkit.WebViewFactory.sProviderInstance:Landroid/webkit/WebViewFactoryProvider;
            ifnull 5
         2: .line 136
            new java.lang.IllegalStateException
            dup
         3: .line 137
            ldc "Can't set data directory suffix: WebView already initialized"
         4: .line 136
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 139
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* suffix */
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 9
         6: .line 140
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Suffix "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 141
            ldc " contains a path separator"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 140
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* suffix */
            putstatic android.webkit.WebViewFactory.sDataDirectorySuffix:Ljava/lang/String;
        10: .line 134
            aload 1
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 1
            monitorexit
        13: athrow
        14: .line 145
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String suffix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0  suffix  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1    11      12  any
          12    13      12  any
    MethodParameters:
        Name  Flags
      suffix  

  static java.lang.String getDataDirectorySuffix();
    descriptor: ()Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 151
            getstatic android.webkit.WebViewFactory.sProviderLock:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 152
            getstatic android.webkit.WebViewFactory.sDataDirectorySuffix:Ljava/lang/String;
            aload 0
            monitorexit
         2: areturn
         3: .line 151
      StackMap locals: java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 0
            monitorexit
         4: athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public static java.lang.String getWebViewLibrary(android.content.pm.ApplicationInfo);
    descriptor: (Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.content.pm.ApplicationInfo ai
         0: .line 160
            aload 0 /* ai */
            getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
            ifnull 2
         1: .line 161
            aload 0 /* ai */
            getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
            ldc "com.android.webview.WebViewLibrary"
            invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         2: .line 162
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // android.content.pm.ApplicationInfo ai
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    ai  Landroid/content/pm/ApplicationInfo;
    MethodParameters:
      Name  Flags
      ai    

  public static android.content.pm.PackageInfo getLoadedPackageInfo();
    descriptor: ()Landroid/content/pm/PackageInfo;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 166
            getstatic android.webkit.WebViewFactory.sProviderLock:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 167
            getstatic android.webkit.WebViewFactory.sPackageInfo:Landroid/content/pm/PackageInfo;
            aload 0
            monitorexit
         2: areturn
         3: .line 166
      StackMap locals: java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 0
            monitorexit
         4: athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public static java.lang.Class<android.webkit.WebViewFactoryProvider> getWebViewProviderClass(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.ClassLoader clazzLoader
         0: .line 176
            ldc "com.android.webview.chromium.WebViewChromiumFactoryProviderForP"
         1: .line 177
            iconst_1
            aload 0 /* clazzLoader */
         2: .line 176
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            areturn
        end local 0 // java.lang.ClassLoader clazzLoader
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  clazzLoader  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/ClassLoader;)Ljava/lang/Class<Landroid/webkit/WebViewFactoryProvider;>;
    MethodParameters:
             Name  Flags
      clazzLoader  

  public static int loadWebViewNativeLibraryFromPackage(java.lang.String, java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.lang.String packageName
        start local 1 // java.lang.ClassLoader clazzLoader
         0: .line 186
            invokestatic android.webkit.WebViewFactory.isWebViewSupported:()Z
            ifne 2
         1: .line 187
            iconst_1
            ireturn
         2: .line 190
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* response */
        start local 2 // android.webkit.WebViewProviderResponse response
         3: .line 192
            invokestatic android.webkit.WebViewFactory.getUpdateService:()Landroid/webkit/IWebViewUpdateService;
            invokeinterface android.webkit.IWebViewUpdateService.waitForAndGetProvider:()Landroid/webkit/WebViewProviderResponse;
            astore 2 /* response */
         4: .line 193
            goto 8
      StackMap locals: java.lang.String java.lang.ClassLoader android.webkit.WebViewProviderResponse
      StackMap stack: android.os.RemoteException
         5: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         6: .line 194
            ldc "WebViewFactory"
            ldc "error waiting for relro creation"
            aload 3 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         7: .line 195
            bipush 8
            ireturn
        end local 3 // android.os.RemoteException e
         8: .line 199
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            getfield android.webkit.WebViewProviderResponse.status:I
            ifeq 11
         9: .line 200
            aload 2 /* response */
            getfield android.webkit.WebViewProviderResponse.status:I
            iconst_3
            if_icmpeq 11
        10: .line 201
            aload 2 /* response */
            getfield android.webkit.WebViewProviderResponse.status:I
            ireturn
        11: .line 203
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            getfield android.webkit.WebViewProviderResponse.packageInfo:Landroid/content/pm/PackageInfo;
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
            aload 0 /* packageName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 204
            iconst_1
            ireturn
        13: .line 207
      StackMap locals:
      StackMap stack:
            invokestatic android.app.AppGlobals.getInitialApplication:()Landroid/app/Application;
            invokevirtual android.app.Application.getPackageManager:()Landroid/content/pm/PackageManager;
            astore 3 /* packageManager */
        start local 3 // android.content.pm.PackageManager packageManager
        14: .line 210
            aload 3 /* packageManager */
            aload 0 /* packageName */
        15: .line 211
            ldc 268435584
        16: .line 210
            invokevirtual android.content.pm.PackageManager.getPackageInfo:(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
            astore 5 /* packageInfo */
        start local 5 // android.content.pm.PackageInfo packageInfo
        17: .line 212
            aload 5 /* packageInfo */
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
            invokestatic android.webkit.WebViewFactory.getWebViewLibrary:(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
            astore 4 /* libraryFileName */
        end local 5 // android.content.pm.PackageInfo packageInfo
        start local 4 // java.lang.String libraryFileName
        18: .line 213
            goto 22
        end local 4 // java.lang.String libraryFileName
      StackMap locals: java.lang.String java.lang.ClassLoader android.webkit.WebViewProviderResponse android.content.pm.PackageManager
      StackMap stack: android.content.pm.PackageManager$NameNotFoundException
        19: pop
        20: .line 214
            ldc "WebViewFactory"
            new java.lang.StringBuilder
            dup
            ldc "Couldn't find package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* packageName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        21: .line 215
            iconst_1
            ireturn
        start local 4 // java.lang.String libraryFileName
        22: .line 218
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* clazzLoader */
            aload 4 /* libraryFileName */
            invokestatic android.webkit.WebViewLibraryLoader.loadNativeLibrary:(Ljava/lang/ClassLoader;Ljava/lang/String;)I
            istore 5 /* loadNativeRet */
        start local 5 // int loadNativeRet
        23: .line 221
            iload 5 /* loadNativeRet */
            ifne 24
            aload 2 /* response */
            getfield android.webkit.WebViewProviderResponse.status:I
            ireturn
        24: .line 222
      StackMap locals: int
      StackMap stack:
            iload 5 /* loadNativeRet */
            ireturn
        end local 5 // int loadNativeRet
        end local 4 // java.lang.String libraryFileName
        end local 3 // android.content.pm.PackageManager packageManager
        end local 2 // android.webkit.WebViewProviderResponse response
        end local 1 // java.lang.ClassLoader clazzLoader
        end local 0 // java.lang.String packageName
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0      packageName  Ljava/lang/String;
            0   25     1      clazzLoader  Ljava/lang/ClassLoader;
            3   25     2         response  Landroid/webkit/WebViewProviderResponse;
            6    8     3                e  Landroid/os/RemoteException;
           14   25     3   packageManager  Landroid/content/pm/PackageManager;
           18   19     4  libraryFileName  Ljava/lang/String;
           22   25     4  libraryFileName  Ljava/lang/String;
           17   18     5      packageInfo  Landroid/content/pm/PackageInfo;
           23   25     5    loadNativeRet  I
      Exception table:
        from    to  target  type
           3     4       5  Class android.os.RemoteException
          14    18      19  Class android.content.pm.PackageManager$NameNotFoundException
    MethodParameters:
             Name  Flags
      packageName  
      clazzLoader  

  static android.webkit.WebViewFactoryProvider getProvider();
    descriptor: ()Landroid/webkit/WebViewFactoryProvider;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=8, args_size=0
         0: .line 226
            getstatic android.webkit.WebViewFactory.sProviderLock:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 229
            getstatic android.webkit.WebViewFactory.sProviderInstance:Landroid/webkit/WebViewFactoryProvider;
            ifnull 3
            getstatic android.webkit.WebViewFactory.sProviderInstance:Landroid/webkit/WebViewFactoryProvider;
            aload 0
            monitorexit
         2: areturn
         3: .line 231
      StackMap locals: java.lang.Object
      StackMap stack:
            invokestatic android.os.Process.myUid:()I
            istore 1 /* uid */
        start local 1 // int uid
         4: .line 232
            iload 1 /* uid */
            ifeq 7
            iload 1 /* uid */
            sipush 1000
            if_icmpeq 7
         5: .line 233
            iload 1 /* uid */
            sipush 1001
            if_icmpeq 7
            iload 1 /* uid */
            sipush 1027
            if_icmpeq 7
         6: .line 234
            iload 1 /* uid */
            sipush 1002
            if_icmpne 10
         7: .line 235
      StackMap locals: int
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
         8: .line 236
            ldc "For security reasons, WebView is not allowed in privileged processes"
         9: .line 235
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 239
      StackMap locals:
      StackMap stack:
            invokestatic android.webkit.WebViewFactory.isWebViewSupported:()Z
            ifne 12
        11: .line 241
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        12: .line 244
      StackMap locals:
      StackMap stack:
            getstatic android.webkit.WebViewFactory.sWebViewDisabled:Z
            ifeq 16
        13: .line 245
            new java.lang.IllegalStateException
            dup
        14: .line 246
            ldc "WebView.disableWebView() was called: WebView is disabled"
        15: .line 245
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 249
      StackMap locals:
      StackMap stack:
            ldc 16
            ldc "WebViewFactory.getProvider()"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        17: .line 251
            invokestatic android.webkit.WebViewFactory.getProviderClass:()Ljava/lang/Class;
            astore 2 /* providerClass */
        start local 2 // java.lang.Class providerClass
        18: .line 252
            aconst_null
            astore 3 /* staticFactory */
        start local 3 // java.lang.reflect.Method staticFactory
        19: .line 254
            aload 2 /* providerClass */
        20: .line 255
            ldc "create"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Landroid/webkit/WebViewDelegate;
            aastore
        21: .line 254
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* staticFactory */
        22: .line 256
            goto 24
      StackMap locals: java.lang.Object int java.lang.Class java.lang.reflect.Method
      StackMap stack: java.lang.Exception
        23: astore 4
        24: .line 262
      StackMap locals:
      StackMap stack:
            ldc 16
            ldc "WebViewFactoryProvider invocation"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        25: .line 265
            aload 3 /* staticFactory */
            aconst_null
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new android.webkit.WebViewDelegate
            dup
            invokespecial android.webkit.WebViewDelegate.<init>:()V
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
        26: .line 264
            checkcast android.webkit.WebViewFactoryProvider
            putstatic android.webkit.WebViewFactory.sProviderInstance:Landroid/webkit/WebViewFactoryProvider;
        27: .line 267
            getstatic android.webkit.WebViewFactory.sProviderInstance:Landroid/webkit/WebViewFactoryProvider;
            astore 6
        28: .line 272
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        29: .line 275
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        30: .line 267
            aload 0
            monitorexit
        31: aload 6
            areturn
        32: .line 268
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        33: .line 269
            ldc "WebViewFactory"
            ldc "error instantiating provider"
            aload 4 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        34: .line 270
            new android.util.AndroidRuntimeException
            dup
            aload 4 /* e */
            invokespecial android.util.AndroidRuntimeException.<init>:(Ljava/lang/Exception;)V
            athrow
        end local 4 // java.lang.Exception e
        35: .line 271
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        36: .line 272
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        37: .line 273
            aload 5
            athrow
        end local 3 // java.lang.reflect.Method staticFactory
        end local 2 // java.lang.Class providerClass
        38: .line 274
      StackMap locals: java.lang.Object int
      StackMap stack: java.lang.Throwable
            astore 7
        39: .line 275
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        40: .line 276
            aload 7
            athrow
        end local 1 // int uid
        41: .line 226
      StackMap locals: java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 0
            monitorexit
        42: athrow
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            4   41     1            uid  I
           18   38     2  providerClass  Ljava/lang/Class<Landroid/webkit/WebViewFactoryProvider;>;
           19   38     3  staticFactory  Ljava/lang/reflect/Method;
           33   35     4              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          19    22      23  Class java.lang.Exception
          25    28      32  Class java.lang.Exception
          25    28      35  any
          32    35      35  any
          17    29      38  any
          32    38      38  any
           1     2      41  any
           3    31      41  any
          32    42      41  any

  private static boolean signaturesEquals(android.content.pm.Signature[], android.content.pm.Signature[]);
    descriptor: ([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // android.content.pm.Signature[] s1
        start local 1 // android.content.pm.Signature[] s2
         0: .line 284
            aload 0 /* s1 */
            ifnonnull 3
         1: .line 285
            aload 1 /* s2 */
            ifnonnull 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 287
      StackMap locals:
      StackMap stack:
            aload 1 /* s2 */
            ifnonnull 4
            iconst_0
            ireturn
         4: .line 289
      StackMap locals:
      StackMap stack:
            new android.util.ArraySet
            dup
            invokespecial android.util.ArraySet.<init>:()V
            astore 2 /* set1 */
        start local 2 // android.util.ArraySet set1
         5: .line 290
            aload 0 /* s1 */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: android.content.pm.Signature[] android.content.pm.Signature[] android.util.ArraySet top int int android.content.pm.Signature[]
      StackMap stack:
         6: aload 6
            iload 4
            aaload
            astore 3 /* signature */
        start local 3 // android.content.pm.Signature signature
         7: .line 291
            aload 2 /* set1 */
            aload 3 /* signature */
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // android.content.pm.Signature signature
         8: .line 290
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 6
        10: .line 293
            new android.util.ArraySet
            dup
            invokespecial android.util.ArraySet.<init>:()V
            astore 3 /* set2 */
        start local 3 // android.util.ArraySet set2
        11: .line 294
            aload 1 /* s2 */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 15
      StackMap locals: android.content.pm.Signature[] android.content.pm.Signature[] android.util.ArraySet android.util.ArraySet top int int android.content.pm.Signature[]
      StackMap stack:
        12: aload 7
            iload 5
            aaload
            astore 4 /* signature */
        start local 4 // android.content.pm.Signature signature
        13: .line 295
            aload 3 /* set2 */
            aload 4 /* signature */
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // android.content.pm.Signature signature
        14: .line 294
            iinc 5 1
      StackMap locals:
      StackMap stack:
        15: iload 5
            iload 6
            if_icmplt 12
        16: .line 297
            aload 2 /* set1 */
            aload 3 /* set2 */
            invokevirtual android.util.ArraySet.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 3 // android.util.ArraySet set2
        end local 2 // android.util.ArraySet set1
        end local 1 // android.content.pm.Signature[] s2
        end local 0 // android.content.pm.Signature[] s1
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0         s1  [Landroid/content/pm/Signature;
            0   17     1         s2  [Landroid/content/pm/Signature;
            5   17     2       set1  Landroid/util/ArraySet<Landroid/content/pm/Signature;>;
            7    8     3  signature  Landroid/content/pm/Signature;
           11   17     3       set2  Landroid/util/ArraySet<Landroid/content/pm/Signature;>;
           13   14     4  signature  Landroid/content/pm/Signature;
    MethodParameters:
      Name  Flags
      s1    
      s2    

  private static void verifyPackageInfo(android.content.pm.PackageInfo, android.content.pm.PackageInfo);
    descriptor: (Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.content.pm.PackageInfo chosen
        start local 1 // android.content.pm.PackageInfo toUse
         0: .line 303
            aload 0 /* chosen */
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
            aload 1 /* toUse */
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         1: .line 304
            new android.webkit.WebViewFactory$MissingWebViewPackageException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to verify WebView provider, packageName mismatch, expected: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 306
            aload 0 /* chosen */
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " actual: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* toUse */
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 304
            invokespecial android.webkit.WebViewFactory$MissingWebViewPackageException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* chosen */
            invokevirtual android.content.pm.PackageInfo.getLongVersionCode:()J
            aload 1 /* toUse */
            invokevirtual android.content.pm.PackageInfo.getLongVersionCode:()J
            lcmp
            ifle 9
         5: .line 309
            new android.webkit.WebViewFactory$MissingWebViewPackageException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to verify WebView provider, version code is lower than expected: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 310
            aload 0 /* chosen */
            invokevirtual android.content.pm.PackageInfo.getLongVersionCode:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         7: .line 311
            ldc " actual: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* toUse */
            invokevirtual android.content.pm.PackageInfo.getLongVersionCode:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 309
            invokespecial android.webkit.WebViewFactory$MissingWebViewPackageException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 313
      StackMap locals:
      StackMap stack:
            aload 1 /* toUse */
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
            invokestatic android.webkit.WebViewFactory.getWebViewLibrary:(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
            ifnonnull 13
        10: .line 314
            new android.webkit.WebViewFactory$MissingWebViewPackageException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Tried to load an invalid WebView provider: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 315
            aload 1 /* toUse */
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 314
            invokespecial android.webkit.WebViewFactory$MissingWebViewPackageException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* chosen */
            getfield android.content.pm.PackageInfo.signatures:[Landroid/content/pm/Signature;
            aload 1 /* toUse */
            getfield android.content.pm.PackageInfo.signatures:[Landroid/content/pm/Signature;
            invokestatic android.webkit.WebViewFactory.signaturesEquals:([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
            ifne 15
        14: .line 318
            new android.webkit.WebViewFactory$MissingWebViewPackageException
            dup
            ldc "Failed to verify WebView provider, signature mismatch"
            invokespecial android.webkit.WebViewFactory$MissingWebViewPackageException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 321
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.content.pm.PackageInfo toUse
        end local 0 // android.content.pm.PackageInfo chosen
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0  chosen  Landroid/content/pm/PackageInfo;
            0   16     1   toUse  Landroid/content/pm/PackageInfo;
    Exceptions:
      throws android.webkit.WebViewFactory$MissingWebViewPackageException
    MethodParameters:
        Name  Flags
      chosen  
      toUse   

  private static void fixupStubApplicationInfo(android.content.pm.ApplicationInfo, android.content.pm.PackageManager);
    descriptor: (Landroid/content/pm/ApplicationInfo;Landroid/content/pm/PackageManager;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.content.pm.ApplicationInfo ai
        start local 1 // android.content.pm.PackageManager pm
         0: .line 330
            aconst_null
            astore 2 /* donorPackageName */
        start local 2 // java.lang.String donorPackageName
         1: .line 331
            aload 0 /* ai */
            getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
            ifnull 3
         2: .line 332
            aload 0 /* ai */
            getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
            ldc "com.android.webview.WebViewDonorPackage"
            invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* donorPackageName */
         3: .line 334
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* donorPackageName */
            ifnull 20
         4: .line 337
            aload 1 /* pm */
         5: .line 338
            aload 2 /* donorPackageName */
         6: .line 339
            ldc 270541824
         7: .line 337
            invokevirtual android.content.pm.PackageManager.getPackageInfo:(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
            astore 3 /* donorPackage */
        start local 3 // android.content.pm.PackageInfo donorPackage
         8: .line 343
            goto 13
        end local 3 // android.content.pm.PackageInfo donorPackage
      StackMap locals:
      StackMap stack: android.content.pm.PackageManager$NameNotFoundException
         9: pop
        10: .line 344
            new android.webkit.WebViewFactory$MissingWebViewPackageException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to find donor package: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 345
            aload 2 /* donorPackageName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 344
            invokespecial android.webkit.WebViewFactory$MissingWebViewPackageException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // android.content.pm.PackageInfo donorPackage
        13: .line 347
      StackMap locals: android.content.pm.PackageInfo
      StackMap stack:
            aload 3 /* donorPackage */
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
            astore 4 /* donorInfo */
        start local 4 // android.content.pm.ApplicationInfo donorInfo
        14: .line 350
            aload 0 /* ai */
            aload 4 /* donorInfo */
            getfield android.content.pm.ApplicationInfo.sourceDir:Ljava/lang/String;
            putfield android.content.pm.ApplicationInfo.sourceDir:Ljava/lang/String;
        15: .line 351
            aload 0 /* ai */
            aload 4 /* donorInfo */
            getfield android.content.pm.ApplicationInfo.splitSourceDirs:[Ljava/lang/String;
            putfield android.content.pm.ApplicationInfo.splitSourceDirs:[Ljava/lang/String;
        16: .line 352
            aload 0 /* ai */
            aload 4 /* donorInfo */
            getfield android.content.pm.ApplicationInfo.nativeLibraryDir:Ljava/lang/String;
            putfield android.content.pm.ApplicationInfo.nativeLibraryDir:Ljava/lang/String;
        17: .line 353
            aload 0 /* ai */
            aload 4 /* donorInfo */
            getfield android.content.pm.ApplicationInfo.secondaryNativeLibraryDir:Ljava/lang/String;
            putfield android.content.pm.ApplicationInfo.secondaryNativeLibraryDir:Ljava/lang/String;
        18: .line 357
            aload 0 /* ai */
            aload 4 /* donorInfo */
            getfield android.content.pm.ApplicationInfo.primaryCpuAbi:Ljava/lang/String;
            putfield android.content.pm.ApplicationInfo.primaryCpuAbi:Ljava/lang/String;
        19: .line 358
            aload 0 /* ai */
            aload 4 /* donorInfo */
            getfield android.content.pm.ApplicationInfo.secondaryCpuAbi:Ljava/lang/String;
            putfield android.content.pm.ApplicationInfo.secondaryCpuAbi:Ljava/lang/String;
        end local 4 // android.content.pm.ApplicationInfo donorInfo
        end local 3 // android.content.pm.PackageInfo donorPackage
        20: .line 360
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String donorPackageName
        end local 1 // android.content.pm.PackageManager pm
        end local 0 // android.content.pm.ApplicationInfo ai
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0                ai  Landroid/content/pm/ApplicationInfo;
            0   21     1                pm  Landroid/content/pm/PackageManager;
            1   21     2  donorPackageName  Ljava/lang/String;
            8    9     3      donorPackage  Landroid/content/pm/PackageInfo;
           13   20     3      donorPackage  Landroid/content/pm/PackageInfo;
           14   20     4         donorInfo  Landroid/content/pm/ApplicationInfo;
      Exception table:
        from    to  target  type
           4     8       9  Class android.content.pm.PackageManager$NameNotFoundException
    Exceptions:
      throws android.webkit.WebViewFactory$MissingWebViewPackageException
    MethodParameters:
      Name  Flags
      ai    
      pm    

  private static android.content.Context getWebViewContextAndSetProvider();
    descriptor: ()Landroid/content/Context;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=0
         0: .line 363
            invokestatic android.app.AppGlobals.getInitialApplication:()Landroid/app/Application;
            astore 0 /* initialApplication */
        start local 0 // android.app.Application initialApplication
         1: .line 365
            aconst_null
            astore 1 /* response */
        start local 1 // android.webkit.WebViewProviderResponse response
         2: .line 366
            ldc 16
         3: .line 367
            ldc "WebViewUpdateService.waitForAndGetProvider()"
         4: .line 366
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
         5: .line 369
            invokestatic android.webkit.WebViewFactory.getUpdateService:()Landroid/webkit/IWebViewUpdateService;
            invokeinterface android.webkit.IWebViewUpdateService.waitForAndGetProvider:()Landroid/webkit/WebViewProviderResponse;
            astore 1 /* response */
         6: .line 370
            goto 10
      StackMap locals: android.app.Application android.webkit.WebViewProviderResponse
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 371
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
         9: .line 372
            aload 2
            athrow
        10: .line 371
      StackMap locals:
      StackMap stack:
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        11: .line 373
            aload 1 /* response */
            getfield android.webkit.WebViewProviderResponse.status:I
            ifeq 16
        12: .line 374
            aload 1 /* response */
            getfield android.webkit.WebViewProviderResponse.status:I
            iconst_3
            if_icmpeq 16
        13: .line 375
            new android.webkit.WebViewFactory$MissingWebViewPackageException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to load WebView provider: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 376
            aload 1 /* response */
            getfield android.webkit.WebViewProviderResponse.status:I
            invokestatic android.webkit.WebViewFactory.getWebViewPreparationErrorReason:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 375
            invokespecial android.webkit.WebViewFactory$MissingWebViewPackageException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 380
      StackMap locals:
      StackMap stack:
            ldc 16
            ldc "ActivityManager.addPackageDependency()"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        17: .line 382
            invokestatic android.app.ActivityManager.getService:()Landroid/app/IActivityManager;
        18: .line 383
            aload 1 /* response */
            getfield android.webkit.WebViewProviderResponse.packageInfo:Landroid/content/pm/PackageInfo;
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
        19: .line 382
            invokeinterface android.app.IActivityManager.addPackageDependency:(Ljava/lang/String;)V
        20: .line 384
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 2
        22: .line 385
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        23: .line 386
            aload 2
            athrow
        24: .line 385
      StackMap locals:
      StackMap stack:
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        25: .line 388
            aconst_null
            astore 2 /* newPackageInfo */
        start local 2 // android.content.pm.PackageInfo newPackageInfo
        26: .line 389
            aload 0 /* initialApplication */
            invokevirtual android.app.Application.getPackageManager:()Landroid/content/pm/PackageManager;
            astore 3 /* pm */
        start local 3 // android.content.pm.PackageManager pm
        27: .line 390
            ldc 16
            ldc "PackageManager.getPackageInfo()"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        28: .line 392
            aload 3 /* pm */
        29: .line 393
            aload 1 /* response */
            getfield android.webkit.WebViewProviderResponse.packageInfo:Landroid/content/pm/PackageInfo;
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
        30: .line 394
            ldc 268444864
        31: .line 392
            invokevirtual android.content.pm.PackageManager.getPackageInfo:(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
            astore 2 /* newPackageInfo */
        32: .line 403
            goto 36
      StackMap locals: android.app.Application android.webkit.WebViewProviderResponse android.content.pm.PackageInfo android.content.pm.PackageManager
      StackMap stack: java.lang.Throwable
        33: astore 4
        34: .line 404
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        35: .line 405
            aload 4
            athrow
        36: .line 404
      StackMap locals:
      StackMap stack:
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        37: .line 409
            aload 1 /* response */
            getfield android.webkit.WebViewProviderResponse.packageInfo:Landroid/content/pm/PackageInfo;
            aload 2 /* newPackageInfo */
            invokestatic android.webkit.WebViewFactory.verifyPackageInfo:(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;)V
        38: .line 411
            aload 2 /* newPackageInfo */
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
            astore 4 /* ai */
        start local 4 // android.content.pm.ApplicationInfo ai
        39: .line 412
            aload 4 /* ai */
            aload 3 /* pm */
            invokestatic android.webkit.WebViewFactory.fixupStubApplicationInfo:(Landroid/content/pm/ApplicationInfo;Landroid/content/pm/PackageManager;)V
        40: .line 414
            ldc 16
        41: .line 415
            ldc "initialApplication.createApplicationContext"
        42: .line 414
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        43: .line 418
            aload 0 /* initialApplication */
        44: .line 419
            aload 4 /* ai */
        45: .line 420
            iconst_3
        46: .line 418
            invokevirtual android.app.Application.createApplicationContext:(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
            astore 5 /* webViewContext */
        start local 5 // android.content.Context webViewContext
        47: .line 421
            aload 2 /* newPackageInfo */
            putstatic android.webkit.WebViewFactory.sPackageInfo:Landroid/content/pm/PackageInfo;
        48: .line 422
            aload 5 /* webViewContext */
            astore 7
        49: .line 424
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        50: .line 422
            aload 7
            areturn
        end local 5 // android.content.Context webViewContext
        51: .line 423
      StackMap locals: android.app.Application android.webkit.WebViewProviderResponse android.content.pm.PackageInfo android.content.pm.PackageManager android.content.pm.ApplicationInfo
      StackMap stack: java.lang.Throwable
            astore 6
        52: .line 424
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        53: .line 425
            aload 6
            athrow
        end local 4 // android.content.pm.ApplicationInfo ai
        end local 3 // android.content.pm.PackageManager pm
        end local 2 // android.content.pm.PackageInfo newPackageInfo
        end local 1 // android.webkit.WebViewProviderResponse response
        54: .line 426
      StackMap locals: android.app.Application
      StackMap stack: android.util.AndroidException
            astore 1 /* e */
        start local 1 // android.util.AndroidException e
        55: .line 427
            new android.webkit.WebViewFactory$MissingWebViewPackageException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to load WebView provider: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial android.webkit.WebViewFactory$MissingWebViewPackageException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // android.util.AndroidException e
        end local 0 // android.app.Application initialApplication
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            1   56     0  initialApplication  Landroid/app/Application;
            2   54     1            response  Landroid/webkit/WebViewProviderResponse;
           26   54     2      newPackageInfo  Landroid/content/pm/PackageInfo;
           27   54     3                  pm  Landroid/content/pm/PackageManager;
           39   54     4                  ai  Landroid/content/pm/ApplicationInfo;
           47   51     5      webViewContext  Landroid/content/Context;
           55   56     1                   e  Landroid/util/AndroidException;
      Exception table:
        from    to  target  type
           5     7       7  any
          17    21      21  any
          28    33      33  any
          43    49      51  any
           1    50      54  Class android.os.RemoteException
          51    54      54  Class android.os.RemoteException
           1    50      54  Class android.content.pm.PackageManager$NameNotFoundException
          51    54      54  Class android.content.pm.PackageManager$NameNotFoundException
    Exceptions:
      throws android.webkit.WebViewFactory$MissingWebViewPackageException

  private static java.lang.Class<android.webkit.WebViewFactoryProvider> getProviderClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=0
         0: .line 432
            aconst_null
            astore 0 /* webViewContext */
        start local 0 // android.content.Context webViewContext
         1: .line 433
            invokestatic android.app.AppGlobals.getInitialApplication:()Landroid/app/Application;
            astore 1 /* initialApplication */
        start local 1 // android.app.Application initialApplication
         2: .line 436
            ldc 16
         3: .line 437
            ldc "WebViewFactory.getWebViewContextAndSetProvider()"
         4: .line 436
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
         5: .line 439
            invokestatic android.webkit.WebViewFactory.getWebViewContextAndSetProvider:()Landroid/content/Context;
            astore 0 /* webViewContext */
         6: .line 440
            goto 10
      StackMap locals: android.content.Context android.app.Application
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 441
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
         9: .line 442
            aload 2
            athrow
        10: .line 441
      StackMap locals:
      StackMap stack:
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        11: .line 443
            ldc "WebViewFactory"
            new java.lang.StringBuilder
            dup
            ldc "Loading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic android.webkit.WebViewFactory.sPackageInfo:Landroid/content/pm/PackageInfo;
            getfield android.content.pm.PackageInfo.packageName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " version "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 444
            getstatic android.webkit.WebViewFactory.sPackageInfo:Landroid/content/pm/PackageInfo;
            getfield android.content.pm.PackageInfo.versionName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " (code "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic android.webkit.WebViewFactory.sPackageInfo:Landroid/content/pm/PackageInfo;
            invokevirtual android.content.pm.PackageInfo.getLongVersionCode:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 443
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        14: .line 446
            ldc 16
            ldc "WebViewFactory.getChromiumProviderClass()"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        15: .line 448
            aload 1 /* initialApplication */
            invokevirtual android.app.Application.getAssets:()Landroid/content/res/AssetManager;
        16: .line 449
            aload 0 /* webViewContext */
            invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.sourceDir:Ljava/lang/String;
        17: .line 448
            invokevirtual android.content.res.AssetManager.addAssetPathAsSharedLibrary:(Ljava/lang/String;)I
            pop
        18: .line 450
            aload 0 /* webViewContext */
            invokevirtual android.content.Context.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* clazzLoader */
        start local 2 // java.lang.ClassLoader clazzLoader
        19: .line 452
            ldc 16
            ldc "WebViewFactory.loadNativeLibrary()"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        20: .line 453
            aload 2 /* clazzLoader */
        21: .line 454
            getstatic android.webkit.WebViewFactory.sPackageInfo:Landroid/content/pm/PackageInfo;
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
            invokestatic android.webkit.WebViewFactory.getWebViewLibrary:(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
        22: .line 453
            invokestatic android.webkit.WebViewLibraryLoader.loadNativeLibrary:(Ljava/lang/ClassLoader;Ljava/lang/String;)I
            pop
        23: .line 455
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        24: .line 457
            ldc 16
            ldc "Class.forName()"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        25: .line 459
            aload 2 /* clazzLoader */
            invokestatic android.webkit.WebViewFactory.getWebViewProviderClass:(Ljava/lang/ClassLoader;)Ljava/lang/Class;
            astore 4
        26: .line 461
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        27: .line 467
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        28: .line 459
            aload 4
            areturn
        29: .line 460
      StackMap locals: android.content.Context android.app.Application java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
            astore 3
        30: .line 461
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        31: .line 462
            aload 3
            athrow
        end local 2 // java.lang.ClassLoader clazzLoader
        32: .line 463
      StackMap locals: android.content.Context android.app.Application
      StackMap stack: java.lang.ClassNotFoundException
            astore 2 /* e */
        start local 2 // java.lang.ClassNotFoundException e
        33: .line 464
            ldc "WebViewFactory"
            ldc "error loading provider"
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        34: .line 465
            new android.util.AndroidRuntimeException
            dup
            aload 2 /* e */
            invokespecial android.util.AndroidRuntimeException.<init>:(Ljava/lang/Exception;)V
            athrow
        end local 2 // java.lang.ClassNotFoundException e
        35: .line 466
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        36: .line 467
            ldc 16
            invokestatic android.os.Trace.traceEnd:(J)V
        37: .line 468
            aload 5
            athrow
        38: .line 469
      StackMap locals:
      StackMap stack: android.webkit.WebViewFactory$MissingWebViewPackageException
            astore 2 /* e */
        start local 2 // android.webkit.WebViewFactory$MissingWebViewPackageException e
        39: .line 470
            ldc "WebViewFactory"
            ldc "Chromium WebView package does not exist"
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        40: .line 471
            new android.util.AndroidRuntimeException
            dup
            aload 2 /* e */
            invokespecial android.util.AndroidRuntimeException.<init>:(Ljava/lang/Exception;)V
            athrow
        end local 2 // android.webkit.WebViewFactory$MissingWebViewPackageException e
        end local 1 // android.app.Application initialApplication
        end local 0 // android.content.Context webViewContext
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            1   41     0      webViewContext  Landroid/content/Context;
            2   41     1  initialApplication  Landroid/app/Application;
           19   32     2         clazzLoader  Ljava/lang/ClassLoader;
           33   35     2                   e  Ljava/lang/ClassNotFoundException;
           39   41     2                   e  Landroid/webkit/WebViewFactory$MissingWebViewPackageException;
      Exception table:
        from    to  target  type
           5     7       7  any
          25    26      29  any
          15    27      32  Class java.lang.ClassNotFoundException
          29    32      32  Class java.lang.ClassNotFoundException
          15    27      35  any
          29    35      35  any
           2    28      38  Class android.webkit.WebViewFactory$MissingWebViewPackageException
          29    38      38  Class android.webkit.WebViewFactory$MissingWebViewPackageException
    Signature: ()Ljava/lang/Class<Landroid/webkit/WebViewFactoryProvider;>;

  public static void prepareWebViewInZygote();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 481
            invokestatic android.webkit.WebViewLibraryLoader.reserveAddressSpaceInZygote:()V
         1: .line 482
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 0 /* t */
        start local 0 // java.lang.Throwable t
         3: .line 484
            ldc "WebViewFactory"
            ldc "error preparing native loader"
            aload 0 /* t */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 0 // java.lang.Throwable t
         4: .line 486
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    4     0     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  public static int onWebViewProviderChanged(android.content.pm.PackageInfo);
    descriptor: (Landroid/content/pm/PackageInfo;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // android.content.pm.PackageInfo packageInfo
         0: .line 492
            iconst_0
            istore 1 /* startedRelroProcesses */
        start local 1 // int startedRelroProcesses
         1: .line 493
            new android.content.pm.ApplicationInfo
            dup
            aload 0 /* packageInfo */
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
            invokespecial android.content.pm.ApplicationInfo.<init>:(Landroid/content/pm/ApplicationInfo;)V
            astore 2 /* originalAppInfo */
        start local 2 // android.content.pm.ApplicationInfo originalAppInfo
         2: .line 495
            aload 0 /* packageInfo */
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
         3: .line 496
            invokestatic android.app.AppGlobals.getInitialApplication:()Landroid/app/Application;
            invokevirtual android.app.Application.getPackageManager:()Landroid/content/pm/PackageManager;
         4: .line 495
            invokestatic android.webkit.WebViewFactory.fixupStubApplicationInfo:(Landroid/content/pm/ApplicationInfo;Landroid/content/pm/PackageManager;)V
         5: .line 498
            aload 0 /* packageInfo */
            invokestatic android.webkit.WebViewLibraryLoader.prepareNativeLibraries:(Landroid/content/pm/PackageInfo;)I
            istore 1 /* startedRelroProcesses */
         6: .line 499
            goto 9
      StackMap locals: android.content.pm.PackageInfo int android.content.pm.ApplicationInfo
      StackMap stack: java.lang.Throwable
         7: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         8: .line 501
            ldc "WebViewFactory"
            ldc "error preparing webview native library"
            aload 3 /* t */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // java.lang.Throwable t
         9: .line 504
      StackMap locals:
      StackMap stack:
            aload 0 /* packageInfo */
            aload 2 /* originalAppInfo */
            invokestatic android.webkit.WebViewZygote.onWebViewProviderChanged:(Landroid/content/pm/PackageInfo;Landroid/content/pm/ApplicationInfo;)V
        10: .line 506
            iload 1 /* startedRelroProcesses */
            ireturn
        end local 2 // android.content.pm.ApplicationInfo originalAppInfo
        end local 1 // int startedRelroProcesses
        end local 0 // android.content.pm.PackageInfo packageInfo
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   11     0            packageInfo  Landroid/content/pm/PackageInfo;
            1   11     1  startedRelroProcesses  I
            2   11     2        originalAppInfo  Landroid/content/pm/ApplicationInfo;
            8    9     3                      t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.Throwable
    MethodParameters:
             Name  Flags
      packageInfo  

  public static android.webkit.IWebViewUpdateService getUpdateService();
    descriptor: ()Landroid/webkit/IWebViewUpdateService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 513
            invokestatic android.webkit.WebViewFactory.isWebViewSupported:()Z
            ifeq 2
         1: .line 514
            invokestatic android.webkit.WebViewFactory.getUpdateServiceUnchecked:()Landroid/webkit/IWebViewUpdateService;
            areturn
         2: .line 516
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static android.webkit.IWebViewUpdateService getUpdateServiceUnchecked();
    descriptor: ()Landroid/webkit/IWebViewUpdateService;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 523
            getstatic android.webkit.WebViewFactory.WEBVIEW_UPDATE_SERVICE_NAME:Ljava/lang/String;
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
         1: .line 522
            invokestatic android.webkit.IWebViewUpdateService$Stub.asInterface:(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "WebViewFactory.java"
NestMembers:
  android.webkit.WebViewFactory$MissingWebViewPackageException
InnerClasses:
  public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager
  public abstract Stub = android.webkit.IWebViewUpdateService$Stub of android.webkit.IWebViewUpdateService
  MissingWebViewPackageException = android.webkit.WebViewFactory$MissingWebViewPackageException of android.webkit.WebViewFactory
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()