.class public Landroidx/webkit/internal/WebMessageAdapter; .super Ljava/lang/Object; .source "SourceFile" # interfaces .implements Lorg/chromium/support_lib_boundary/WebMessageBoundaryInterface; # static fields .field private static final sFeatures:[Ljava/lang/String; # instance fields .field private mWebMessageCompat:Landroidx/webkit/WebMessageCompat; # direct methods .method static constructor ()V .locals 1 const-string v0, "WEB_MESSAGE_ARRAY_BUFFER" filled-new-array {v0}, [Ljava/lang/String; move-result-object v0 sput-object v0, Landroidx/webkit/internal/WebMessageAdapter;->sFeatures:[Ljava/lang/String; return-void .end method .method public constructor (Landroidx/webkit/WebMessageCompat;)V .locals 0 .param p1 # Landroidx/webkit/WebMessageCompat; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .line 44 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Landroidx/webkit/internal/WebMessageAdapter;->mWebMessageCompat:Landroidx/webkit/WebMessageCompat; return-void .end method .method public static isMessagePayloadTypeSupportedByWebView(I)Z .locals 1 const/4 v0, 0x1 if-eqz p0, :cond_1 if-ne p0, v0, :cond_0 .line 103 sget-object p0, Landroidx/webkit/internal/WebViewFeatureInternal;->WEB_MESSAGE_ARRAY_BUFFER:Landroidx/webkit/internal/ApiFeature$NoFramework; .line 105 invoke-virtual {p0}, Landroidx/webkit/internal/ApiFeature;->isSupportedByWebView()Z move-result p0 if-eqz p0, :cond_0 goto :goto_0 :cond_0 const/4 v0, 0x0 :cond_1 :goto_0 return v0 .end method .method private static toWebMessagePortCompats([Ljava/lang/reflect/InvocationHandler;)[Landroidx/webkit/WebMessagePortCompat; .locals 4 .annotation build Landroidx/annotation/NonNull; .end annotation .line 144 array-length v0, p0 new-array v0, v0, [Landroidx/webkit/WebMessagePortCompat; const/4 v1, 0x0 .line 145 :goto_0 array-length v2, p0 if-ge v1, v2, :cond_0 .line 146 new-instance v2, Landroidx/webkit/internal/WebMessagePortImpl; aget-object v3, p0, v1 invoke-direct {v2, v3}, Landroidx/webkit/internal/WebMessagePortImpl;->(Ljava/lang/reflect/InvocationHandler;)V aput-object v2, v0, v1 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 return-object v0 .end method .method public static webMessageCompatFromBoundaryInterface(Lorg/chromium/support_lib_boundary/WebMessageBoundaryInterface;)Landroidx/webkit/WebMessageCompat; .locals 3 .param p0 # Lorg/chromium/support_lib_boundary/WebMessageBoundaryInterface; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation .line 122 invoke-interface {p0}, Lorg/chromium/support_lib_boundary/WebMessageBoundaryInterface;->getPorts()[Ljava/lang/reflect/InvocationHandler; move-result-object v0 .line 121 invoke-static {v0}, Landroidx/webkit/internal/WebMessageAdapter;->toWebMessagePortCompats([Ljava/lang/reflect/InvocationHandler;)[Landroidx/webkit/WebMessagePortCompat; move-result-object v0 .line 123 sget-object v1, Landroidx/webkit/internal/WebViewFeatureInternal;->WEB_MESSAGE_ARRAY_BUFFER:Landroidx/webkit/internal/ApiFeature$NoFramework; invoke-virtual {v1}, Landroidx/webkit/internal/ApiFeature;->isSupportedByWebView()Z move-result v1 if-eqz v1, :cond_2 const-class v1, Lorg/chromium/support_lib_boundary/WebMessagePayloadBoundaryInterface; .line 127 invoke-interface {p0}, Lorg/chromium/support_lib_boundary/WebMessageBoundaryInterface;->getMessagePayload()Ljava/lang/reflect/InvocationHandler; move-result-object p0 .line 125 invoke-static {v1, p0}, Lorg/chromium/support_lib_boundary/util/BoundaryInterfaceReflectionUtil;->castToSuppLibClass(Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object; move-result-object p0 check-cast p0, Lorg/chromium/support_lib_boundary/WebMessagePayloadBoundaryInterface; .line 128 invoke-interface {p0}, Lorg/chromium/support_lib_boundary/WebMessagePayloadBoundaryInterface;->getType()I move-result v1 if-eqz v1, :cond_1 const/4 v2, 0x1 if-eq v1, v2, :cond_0 const/4 p0, 0x0 return-object p0 .line 133 :cond_0 new-instance v1, Landroidx/webkit/WebMessageCompat; invoke-interface {p0}, Lorg/chromium/support_lib_boundary/WebMessagePayloadBoundaryInterface;->getAsArrayBuffer()[B move-result-object p0 invoke-direct {v1, p0, v0}, Landroidx/webkit/WebMessageCompat;->([B[Landroidx/webkit/WebMessagePortCompat;)V return-object v1 .line 131 :cond_1 new-instance v1, Landroidx/webkit/WebMessageCompat; invoke-interface {p0}, Lorg/chromium/support_lib_boundary/WebMessagePayloadBoundaryInterface;->getAsString()Ljava/lang/String; move-result-object p0 invoke-direct {v1, p0, v0}, Landroidx/webkit/WebMessageCompat;->(Ljava/lang/String;[Landroidx/webkit/WebMessagePortCompat;)V return-object v1 .line 139 :cond_2 new-instance v1, Landroidx/webkit/WebMessageCompat; invoke-interface {p0}, Lorg/chromium/support_lib_boundary/WebMessageBoundaryInterface;->getData()Ljava/lang/String; move-result-object p0 invoke-direct {v1, p0, v0}, Landroidx/webkit/WebMessageCompat;->(Ljava/lang/String;[Landroidx/webkit/WebMessagePortCompat;)V return-object v1 .end method # virtual methods .method public getData()Ljava/lang/String; .locals 1 .annotation build Landroidx/annotation/Nullable; .end annotation .annotation runtime Ljava/lang/Deprecated; .end annotation iget-object v0, p0, Landroidx/webkit/internal/WebMessageAdapter;->mWebMessageCompat:Landroidx/webkit/WebMessageCompat; .line 56 invoke-virtual {v0}, Landroidx/webkit/WebMessageCompat;->getData()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public getMessagePayload()Ljava/lang/reflect/InvocationHandler; .locals 3 .annotation build Landroidx/annotation/Nullable; .end annotation iget-object v0, p0, Landroidx/webkit/internal/WebMessageAdapter;->mWebMessageCompat:Landroidx/webkit/WebMessageCompat; .line 63 invoke-virtual {v0}, Landroidx/webkit/WebMessageCompat;->getType()I move-result v0 if-eqz v0, :cond_1 const/4 v1, 0x1 if-ne v0, v1, :cond_0 .line 68 new-instance v0, Landroidx/webkit/internal/WebMessagePayloadAdapter; iget-object v1, p0, Landroidx/webkit/internal/WebMessageAdapter;->mWebMessageCompat:Landroidx/webkit/WebMessageCompat; .line 69 invoke-virtual {v1}, Landroidx/webkit/WebMessageCompat;->getArrayBuffer()[B move-result-object v1 invoke-static {v1}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object; check-cast v1, [B invoke-direct {v0, v1}, Landroidx/webkit/internal/WebMessagePayloadAdapter;->([B)V goto :goto_0 .line 72 :cond_0 new-instance v0, Ljava/lang/IllegalStateException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "Unknown web message payload type: " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v2, p0, Landroidx/webkit/internal/WebMessageAdapter;->mWebMessageCompat:Landroidx/webkit/WebMessageCompat; .line 73 invoke-virtual {v2}, Landroidx/webkit/WebMessageCompat;->getType()I move-result v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .line 65 :cond_1 new-instance v0, Landroidx/webkit/internal/WebMessagePayloadAdapter; iget-object v1, p0, Landroidx/webkit/internal/WebMessageAdapter;->mWebMessageCompat:Landroidx/webkit/WebMessageCompat; invoke-virtual {v1}, Landroidx/webkit/WebMessageCompat;->getData()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Landroidx/webkit/internal/WebMessagePayloadAdapter;->(Ljava/lang/String;)V .line 75 :goto_0 invoke-static {v0}, Lorg/chromium/support_lib_boundary/util/BoundaryInterfaceReflectionUtil;->createInvocationHandlerFor(Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler; move-result-object v0 return-object v0 .end method .method public getPorts()[Ljava/lang/reflect/InvocationHandler; .locals 4 .annotation build Landroidx/annotation/Nullable; .end annotation iget-object v0, p0, Landroidx/webkit/internal/WebMessageAdapter;->mWebMessageCompat:Landroidx/webkit/WebMessageCompat; .line 81 invoke-virtual {v0}, Landroidx/webkit/WebMessageCompat;->getPorts()[Landroidx/webkit/WebMessagePortCompat; move-result-object v0 if-nez v0, :cond_0 const/4 v0, 0x0 return-object v0 .line 84 :cond_0 array-length v1, v0 new-array v1, v1, [Ljava/lang/reflect/InvocationHandler; const/4 v2, 0x0 .line 85 :goto_0 array-length v3, v0 if-ge v2, v3, :cond_1 .line 86 aget-object v3, v0, v2 invoke-virtual {v3}, Landroidx/webkit/WebMessagePortCompat;->getInvocationHandler()Ljava/lang/reflect/InvocationHandler; move-result-object v3 aput-object v3, v1, v2 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_1 return-object v1 .end method .method public getSupportedFeatures()[Ljava/lang/String; .locals 1 .annotation build Landroidx/annotation/NonNull; .end annotation sget-object v0, Landroidx/webkit/internal/WebMessageAdapter;->sFeatures:[Ljava/lang/String; return-object v0 .end method