Craftsman 4 v1.20.43版本的 MD5 值为:44824ed1b4bf939cc4a771f5f317f768

以下内容为反编译后的 SafeDKWebAppInterface.java 源代码,内容仅作参考


package com.safedk.android.internal;

import android.app.Application;
import android.content.Context;
import android.os.Build;
import android.support.multidex.MultiDexApplication;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import com.safedk.android.SafeDK;
import com.safedk.android.analytics.brandsafety.BrandSafetyUtils;
import com.safedk.android.analytics.brandsafety.creatives.AdNetworkConfiguration;
import com.safedk.android.analytics.brandsafety.creatives.CreativeInfoManager;
import com.safedk.android.analytics.brandsafety.creatives.infos.CreativeInfo;
import com.safedk.android.utils.Logger;
import com.safedk.android.utils.SdksMapping;
import com.safedk.android.utils.l;
import java.lang.ref.WeakReference;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;
public class SafeDKWebAppInterface {
    public static final String f6407a = "SafeDKWebAppInterface";
    public static final String f6408b = "status";
    public static final String f6409c = "playing";
    public static final String f6410d = "paused";
    public static final String f6411e = "sdk_id";
    public static final String f6412f = "javascript:";
    public static final String f6413g = "(function(){var isMainFrame=function(){return window.location===window.parent.location};var log=function(message){try{window.webkit.messageHandlers.safedkDebug.postMessage(message)}catch(error){}};var sdkId=\"{{SDK_ID}}\";var endCardDetected=false;var isElementHidden=function(element){try{while(element){if(getComputedStyle(element).display==\"none\")return true;element=element.parentElement}}catch(error){window.webkit.messageHandlers.safedkVideoExc.postMessage(error.message+\"\\n\"+error.stack)}return false};var isElementInEventHidden=function(event){return isElementHidden(event.srcElement)};var getVideoPath=function(event){try{var videoElement=event.srcElement;if(videoElement.tagName!=\"VIDEO\")return null;var path=videoElement.src;if(!path){var sourceNodes=videoElement.getElementsByTagName(\"SOURCE\");for(var sourceNode of sourceNodes){if(sourceNode.src){path=sourceNode.src;break}}}if(path){if(path.length>=200){path=path.substring(0,199)}}return path}catch(error){window.webkit.messageHandlers.safedkVideoExc.postMessage(error.message+\"\\n\"+error.stack)}return null};var notifyPlay=function(event){if(!endCardDetected){if(isElementInEventHidden(event))return;event.srcElement.safedkVideoPlaying=true;var message={status:\"playing\",sdk_id:sdkId};var src=getVideoPath(event);if(src)message[\"src\"]=src;log(\"Notifying client that video is playing for sdkId: \"+sdkId+\", video ID: \"+event.srcElement.id);window.webkit.messageHandlers.safedkVideo.postMessage(JSON.stringify(message))}};var notifyPause=function(event){if(!endCardDetected){event.srcElement.safedkVideoPlaying=false;var message={status:\"paused\",sdk_id:sdkId};var src=getVideoPath(event);if(src)message[\"src\"]=src;log(\"Notifying client that video is paused for sdkId: \"+sdkId+\", video ID: \"+event.srcElement.id);window.webkit.messageHandlers.safedkVideo.postMessage(JSON.stringify(message))}};var notifyEndCard=function(){if(!endCardDetected){endCardDetected=true;log(\"Notifying client that end-card detected for sdkId: \"+sdkId);var message={status:\"end-card\",sdk_id:sdkId};window.webkit.messageHandlers.safedkVideo.postMessage(JSON.stringify(message))}};var addVideoListeners=function(doc){try{if(doc.nodeName==\"#text\")return;var videoElements=doc.getElementsByTagName(\"VIDEO\");if(videoElements.length==0){if(doc.tagName&&doc.tagName==\"VIDEO\"){videoElements=[doc]}}for(i=0;i<videoElements.length;i++){var videoElement=videoElements[i];if(videoElement.safedkVideoListeners!=true){log(\"Found VIDEO tag, adding event listeners. sdkId: \"+sdkId+\", video ID: \"+videoElement.id);videoElement.safedkVideoListeners=true;videoElement.addEventListener(\"play\",notifyPlay);videoElement.addEventListener(\"pause\",notifyPause)}}}catch(error){}};var addEndCardObserver=function(){try{var endCardElement=document.getElementById(\"al_endCardDiv\");if(endCardElement){var computedStyle=getComputedStyle(endCardElement);if(computedStyle&&computedStyle.display==\"flex\"){log(\"Found visible al_endCardDiv tag. sdkId: \"+sdkId);notifyEndCard()}else{if(endCardElement.safedkEndCardObserver!=true){endCardElement.safedkEndCardObserver=true;log(\"Found al_endCardDiv tag, adding end-card observer. sdkId: \"+sdkId);try{var MutationObserver=window.WebKitMutationObserver||window.MutationObserver;var observer=new MutationObserver(function(mutations){mutations.forEach(function(mutation){switch(mutation.type){case\"attributes\":computedStyle=getComputedStyle(mutation.target);if(computedStyle&&computedStyle.display==\"flex\"){notifyEndCard()}break}})});var config={attributes:true,attributeOldValue:true,attributeFilter:[\"style\"]};observer.observe(endCardElement,config)}catch(error){window.webkit.messageHandlers.safedkVideoExc.postMessage(error.message+\"\\n\"+error.stack)}}}}}catch(error){window.webkit.messageHandlers.safedkVideoExc.postMessage(error.message+\"\\n\"+error.stack)}};log(\"Initializing video observer\");addVideoListeners(document);if(sdkId.startsWith(\"com.applovin\")){addEndCardObserver()}try{var MutationObserver=window.WebKitMutationObserver||window.MutationObserver;var observer=new MutationObserver(function(mutations){mutations.forEach(function(mutation){for(var node of mutation.addedNodes){log(\"Add video listeners for added elements: \"+node);addVideoListeners(node)}for(var node of mutation.removedNodes){if(node.tagName){var removedVideoElements=node.getElementsByTagName(\"VIDEO\");for(var removedVideoElement of removedVideoElements){if(removedVideoElement.safedkVideoPlaying){log(\"VIDEO tag removed. Calling notifyPause\");var event={srcElement:removedVideoElement};notifyPause(event)}}}}if(sdkId.startsWith(\"com.applovin\")){addEndCardObserver()}})});var config={childList:true,subtree:true};observer.observe(document,config)}catch(error){window.webkit.messageHandlers.safedkVideoExc.postMessage(error.message+\"\\n\"+error.stack)}})();\n";
    public static final String f6414h = "(function(){var webviewAddress=\"{{webviewAddress}}\";var sdkPackage=\"{{sdkPackage}}\";var log=function(message){try{window.webkit.messageHandlers.safedkDebug.postMessage(\"get_text \"+sdkPackage+\" \"+webviewAddress+\" : \"+message)}catch(error){}};var textContentUnder=function(element){var n;var s=new Set;try{if(element){var walk=document.createTreeWalker(element,NodeFilter.SHOW_TEXT,null,false);while(n=walk.nextNode()){var parent=n.parentElement;if(!parent)continue;if(parent.nodeType!=1)continue;if(parent.tagName==\"SCRIPT\"||parent.tagName==\"NOSCRIPT\"||parent.tagName==\"STYLE\"||parent.tagName==\"IFRAME\")continue;if(isHidden(parent))continue;var text=n.textContent.trim();if(text==\"\")continue;log(\"textContentUnder added \"+text);s.add(text)}}}catch(error){log(\"error : \"+error)}return s};var isHidden=function(element){try{while(element){if(getComputedStyle(element).display==\"none\")return true;element=element.parentElement}}catch(error){console.log(\"error : \"+error)}return false};var collectText=function(element){var textArray=textContentUnder(document.body);var text=Array.from(textArray).join(\"---\");log(\"sdkPackage = \"+sdkPackage+\", address = \"+webviewAddress+\", text = \"+text);try{window.webkit.messageHandlers.safedkDebug.setContent(sdkPackage,webviewAddress,text)}catch(error){log(\"collectText error : \"+error)}};var i=0;var interval=1e3;setInterval(function(){if(i<10){log(\"debug setInterval i = \"+i);i++;collectText()}},interval)})();\n";
    public static final String f6415i = "(function(){var webviewAddress=\"{{webviewAddress}}\";var sdkPackage=\"{{sdkPackage}}\";var log=function(message){try{window.webkit.messageHandlers.safedkDebug.postMessage(message)}catch(error){}};var postBody=\"\";let oldXHROpen=window.XMLHttpRequest.prototype.open;window.XMLHttpRequest.prototype.open=function(method,url,async,user,password){this.addEventListener(\"load\",function(){window.webkit.messageHandlers.safedkDebug.interceptXmlHttpRequest(sdkPackage,this.responseURL,this.responseText,postBody)});return oldXHROpen.apply(this,arguments)};let oldXHRSend=window.XMLHttpRequest.prototype.send;window.XMLHttpRequest.prototype.send=function(body){postBody=body;return oldXHRSend.apply(this,arguments)}})();\n";
    private static final String f6417l = "privacy";
    private static final String f6418m = "end_of_video";
    private static final String f6419n = "extract_text";
    private static final String f6420o = "xml_http_request";
    Context f6424k;
    private static final CharSequence f6421p = "https://webview.unityads.unity3d.com/webview/";
    private static final CharSequence f6422q = "UnityAdsWebApp.html";
    private static final List<String> f6423r = Arrays.asList("document.write", "(function()");
    public static final Map<String, WeakReference<WebView>> f6416j = new HashMap();

    public SafeDKWebAppInterface(Context c2) {
        this.f6424k = c2;
    }

    @JavascriptInterface
    public void postMessage(String msg) {
        String str;
        boolean z = true;
        Logger.d(f6407a, "postMessage : msg = " + msg);
        try {
            JSONObject jSONObject = new JSONObject(msg);
            if (!jSONObject.has("status")) {
                z = false;
            } else if (jSONObject.get("status").equals("playing")) {
                z = false;
            }
            if (!jSONObject.has(f6411e)) {
                str = null;
            } else {
                str = jSONObject.getString(f6411e);
            }
            Logger.d(f6407a, "postMessage : status = " + z + ", sdk_id = " + str + ", src = " + (jSONObject.has("src") ? jSONObject.get("src") : "NA"));
            if (str != null) {
                String[] split = str.split("~");
                CreativeInfoManager.a(split[0], split[1], z);
            }
        } catch (JSONException e2) {
            Logger.d(f6407a, "Received msg is not a JSON object : " + msg);
        }
    }

    @JavascriptInterface
    public void logMessage(String msg) {
        Logger.d(f6407a, "logMessage msg = " + msg);
    }

    private void d(String str, String str2) {
        List<CreativeInfo> a2 = SafeDK.getInstance().y().a(str, str2);
        List<CreativeInfo> a3 = SafeDK.getInstance().z().a(str, str2);
        List<CreativeInfo> a4 = SafeDK.getInstance().A().a(str, str2);
        if (a2 != null && a2.size() > 0) {
            Logger.d(f6407a, "requestNoSamplingUnity calling interstitial requestNoSampling, : address = " + str2);
            CreativeInfoManager.b(str, str2);
        } else if (a3 != null && a3.size() > 0) {
            Logger.d(f6407a, "requestNoSamplingUnity calling banner requestNoSampling, : address = " + str2);
            CreativeInfoManager.a(BrandSafetyUtils.AdType.BANNER, str2);
        } else if (a4 != null && a4.size() > 0) {
            Logger.d(f6407a, "requestNoSamplingUnity calling MREC requestNoSampling, : address = " + str2);
            CreativeInfoManager.a(BrandSafetyUtils.AdType.MREC, str2);
        } else {
            Logger.d(f6407a, "requestNoSamplingUnity WebView is not a banner nor an MREC nor an interstitial, : address = " + str2);
        }
    }

    @JavascriptInterface
    public void interceptXmlHttpRequest(String sdkPackageName, String url, String responseBody, String RequestBody) {
        com.safedk.android.analytics.brandsafety.creatives.discoveries.h g2;
        Logger.d(f6407a, "interceptXmlHttpRequest started,  sdkPackageName = " + sdkPackageName + " , url =" + url);
        if (sdkPackageName.equals(com.safedk.android.utils.h.f6569o)) {
            if (url.contains(".rayjump.com/openapi/moreoffer") || url.contains("mtgglobals.com/openapi/ad/v3")) {
                Logger.d(f6407a, "interceptXmlHttpRequest parameters responseBody = " + responseBody + " , RequestBody =" + RequestBody);
                if (!url.contains("?") && (g2 = CreativeInfoManager.g(com.safedk.android.utils.h.f6569o)) != null) {
                    try {
                        Logger.d(f6407a, "interceptXmlHttpRequest calling Mintegral handleComplementaryPrefetch ,  sdkPackageName = " + sdkPackageName + " , url =" + url + ", responseBody = " + responseBody + " , RequestBody = " + RequestBody);
                        g2.a(url + "?" + RequestBody, new JSONObject(responseBody).getJSONObject("data"));
                    } catch (JSONException e2) {
                        Logger.d(f6407a, "interceptXmlHttpRequest Mintegral response is invalid json: " + e2);
                    }
                }
            }
        }
    }

    public static String a(String str, String str2) {
        Logger.d(f6407a, "getXMLHttpRequestJsScript: sdk= " + str + ", webviewAddress= " + str2);
        return "javascript:" + f6415i.replace("{{webviewAddress}}", str2).replace("{{sdkPackage}}", str).replace("window.webkit.", "window.").replace("messageHandlers.safedkDebug.postMessage", "SafeDKWebAppInterface.logMessage").replace("messageHandlers.safedkDebug.interceptXmlHttpRequest", "SafeDKWebAppInterface.interceptXmlHttpRequest");
    }

    @JavascriptInterface
    public void requestNoSampling(String sdkPackageName, String address, int height, int width) {
        Logger.d(f6407a, "requestNoSampling : address = " + address + ", height = " + height + " , width = " + width);
        if (height == 0 && width == 0) {
            d(sdkPackageName, address);
        } else if (l.a(width, height)) {
            Logger.d(f6407a, "requestNoSampling calling banner requestNoSampling, : address = " + address);
            CreativeInfoManager.a(BrandSafetyUtils.AdType.BANNER, address);
        } else if (l.b(width, height)) {
            Logger.d(f6407a, "requestNoSampling calling MREC requestNoSampling, : address = " + address);
            CreativeInfoManager.a(BrandSafetyUtils.AdType.MREC, address);
        } else if (b.getInstance().isInterstitialActivity(b.getInstance().getForegroundActivity())) {
            Logger.d(f6407a, "requestNoSampling calling interstitial requestNoSampling, : address = " + address);
            CreativeInfoManager.b(sdkPackageName, address);
        } else {
            Logger.d(f6407a, "requestNoSampling WebView is non a banner nor an interstitial, probably MREC, : address = " + address);
        }
    }

    @JavascriptInterface
    public void setContent(String packageName, String webviewAddress, String texts) {
        WeakReference<WebView> weakReference;
        String[] split;
        try {
            if (com.safedk.android.utils.a.a(packageName)) {
                if (texts != null && texts.trim().length() > 0) {
                    Logger.d(f6407a, "setContent packageName = " + packageName + ", webviewAddress = " + webviewAddress + ", text = " + texts);
                    if (f6416j.containsKey(webviewAddress) && b(texts) && (weakReference = f6416j.get(webviewAddress)) != null && weakReference.get() != null) {
                        for (String str : texts.split("---")) {
                            if (str != null && str.trim().length() > 0) {
                                com.safedk.android.analytics.brandsafety.creatives.e.a(packageName, weakReference.get(), "text:" + str, null);
                            }
                        }
                        return;
                    }
                    return;
                }
                Logger.d(f6407a, "setContent WebView address " + webviewAddress + " text is empty");
            }
        } catch (Throwable th) {
            Logger.d(f6407a, "setContent exception : " + th.getMessage() + ", webviewAddress = " + webviewAddress, th);
        }
    }

    private boolean b(String str) {
        for (String str2 : f6423r) {
            if (str != null && str.contains(str2)) {
                Logger.d(f6407a, "should add text : skipping text " + str);
                return false;
            }
        }
        Logger.d(f6407a, "should add text : eligible text " + str);
        return true;
    }

    public static void a(String str, WebView webView, String str2) {
        String a2 = BrandSafetyUtils.a(webView);
        SafeDK safeDK = SafeDK.getInstance();
        Logger.d(f6407a, "addJScript started sdkPackage=" + str + ", webView=" + a2 + " ,url=" + str2 + " , isMaxInit=" + SafeDK.Z());
        if (!SafeDK.Z() || safeDK == null || str2 == null) {
            Logger.d(f6407a, "addJScript loaded url is empty or app not initialized yet, skipping.");
            return;
        }
        String mainSdkPackage = SdksMapping.getMainSdkPackage(str);
        if (CreativeInfoManager.g(mainSdkPackage) == null) {
            Logger.d(f6407a, "addJScript not s supported sdkPackage :  " + mainSdkPackage + ", existing");
        } else if ((SafeDK.Z() && safeDK != null && !safeDK.h()) || str2.contains(f6421p) || str2.contains(f6422q)) {
            if (str2.startsWith("javascript:")) {
                Logger.d(f6407a, "addJScript loaded data is javascript, ignoring. url : " + str2);
                return;
            }
            if (SafeDK.P() && Build.VERSION.SDK_INT >= 19) {
                WebView.setWebContentsDebuggingEnabled(true);
            }
            webView.addJavascriptInterface(new SafeDKWebAppInterface(webView.getContext()), f6407a);
            Logger.d(f6407a, "addJScript javascript interface added, WebView address is " + a2);
            if (SafeDK.P() && Build.VERSION.SDK_INT >= 19) {
                Logger.d(f6407a, "addJScript testing javascript call. WebView address is " + a2);
                webView.evaluateJavascript("javascript:console.log('adding js interface');", null);
                webView.evaluateJavascript("javascript:console.log(document.getElementByName);", null);
                webView.evaluateJavascript("javascript:window.SafeDKWebAppInterface.logMessage('adding js interface');", null);
            }
            b(mainSdkPackage, webView, str2);
        } else {
            Logger.d(f6407a, "addJScript skipped url " + str2);
        }
    }

    public static String a(String str, String str2, String str3) {
        return "javascript:" + str3.replace("window.webkit.", "window.").replace("messageHandlers.safedkNoSamplingExc.postMessage", "SafeDKWebAppInterface.logMessage").replace("messageHandlers.safedkNoSampling.postMessage", "SafeDKWebAppInterface.requestNoSampling").replace("messageHandlers.safedkDebug.postMessage", "SafeDKWebAppInterface.logMessage").replace("{{SDK_ID}}", str).replace("{{ADDRESS}}", str2);
    }

    public static String b(String str, String str2) {
        return "javascript:" + f6413g.replace("window.webkit.", "window.").replace("messageHandlers.safedkDebug.postMessage", "SafeDKWebAppInterface.logMessage").replace("messageHandlers.safedkVideoExc.postMessage", "SafeDKWebAppInterface.logMessage").replace("messageHandlers.safedkNoSampling.postMessage", "SafeDKWebAppInterface.logMessage").replace("messageHandlers.safedkVideo", f6407a).replace("{{SDK_ID}}", str + "~" + str2);
    }

    public static String c(String str, String str2) {
        Logger.d(f6407a, "getting js html extr script for webviewAddress " + str2);
        return "javascript:" + f6414h.replace("{{webviewAddress}}", str2).replace("{{sdkPackage}}", str).replace("window.webkit.", "window.").replace("messageHandlers.safedkDebug.postMessage", "SafeDKWebAppInterface.logMessage").replace("messageHandlers.safedkDebug.setContent", "SafeDKWebAppInterface.setContent");
    }

    private static void b(final String str, final WebView webView, final String str2) {
        final String a2 = BrandSafetyUtils.a(webView);
        SafeDK safeDK = SafeDK.getInstance();
        if (SafeDK.Z() && safeDK != null && !SafeDK.getInstance().h()) {
            if (str2 == null || str2.equalsIgnoreCase("about:blank") || str2.trim().length() == 0) {
                Logger.d(f6407a, "attachJsScript url is blank, skipping scripts injection. sdkPackage = " + str + ", webView = " + webView + ", url = " + str2);
                return;
            }
            final HashMap hashMap = new HashMap();
            Logger.d(f6407a, "attachJsScript sdk: " + str + ", address: " + a2 + " resource: " + str2);
            com.safedk.android.analytics.brandsafety.creatives.a h2 = CreativeInfoManager.h(str);
            if (h2 == null) {
                Logger.d(f6407a, "attachJsScript configBundle is empty, existing");
                return;
            }
            if (h2 != null) {
                Logger.d(f6407a, "attachJsScript sdk " + str + " items: js privacy fullscreen  : " + h2.a(AdNetworkConfiguration.SUPPORTS_JAVASCRIPT_BASED_PRIVACY_BUTTON_CLICK_DETECTION_IN_FULLSCREEN_ADS, false) + ", js privacy banner  : " + h2.a(AdNetworkConfiguration.SUPPORTS_JAVASCRIPT_BASED_PRIVACY_BUTTON_CLICK_DETECTION_IN_BANNERS, false) + ", js privacy mrec  : " + h2.a(AdNetworkConfiguration.SUPPORTS_JAVASCRIPT_BASED_PRIVACY_BUTTON_CLICK_DETECTION_IN_MRECS, false) + ", js video : " + h2.a(AdNetworkConfiguration.SUPPORTS_JAVASCRIPT_BASED_VIDEO_STATE_DETECTION, false) + ", js text extraction : " + h2.a(AdNetworkConfiguration.SHOULD_INJECT_JS_TO_WEBVIEWS_FOR_TEXT_EXTRACTION, true));
            } else {
                Logger.d(f6407a, "attachJsScript sdk " + str + " config bundle is empty");
            }
            boolean isInterstitialActivity = b.getInstance().isInterstitialActivity(webView.getContext());
            boolean z = h2.a(AdNetworkConfiguration.SHOULD_INJECT_JS_TO_WEBVIEWS_NOT_YET_ATTACHED_TO_ACTIVITY, false) || (webView.getContext() instanceof Application) || (webView.getContext() instanceof MultiDexApplication);
            Logger.d(f6407a, "attachJsScript interstitialActivity is " + isInterstitialActivity + ", context = " + webView.getContext());
            if (((isInterstitialActivity || z) && h2.a(AdNetworkConfiguration.SUPPORTS_JAVASCRIPT_BASED_PRIVACY_BUTTON_CLICK_DETECTION_IN_FULLSCREEN_ADS, false)) || (!isInterstitialActivity && (h2.a(AdNetworkConfiguration.SUPPORTS_JAVASCRIPT_BASED_PRIVACY_BUTTON_CLICK_DETECTION_IN_MRECS, false) || h2.a(AdNetworkConfiguration.SUPPORTS_JAVASCRIPT_BASED_PRIVACY_BUTTON_CLICK_DETECTION_IN_BANNERS, false)))) {
                String a3 = h2.a(AdNetworkConfiguration.JS_PRIVACY_BUTTON_CLICK_DETECTION_SCRIPT, (String) null);
                if (a3 != null && a3.length() > 0) {
                    hashMap.put(f6417l, a(str, a2, a3));
                    Logger.d(f6407a, "attachJsScript added " + str + " privacy button click detection script to list.");
                } else {
                    Logger.d(f6407a, "attachJsScript privacy button click detection script is empty, skipping.");
                }
            }
            if (h2.b(AdNetworkConfiguration.SUPPORTS_JAVASCRIPT_BASED_VIDEO_STATE_DETECTION)) {
                hashMap.put(f6418m, b(str, a2));
                Logger.d(f6407a, "attachJsScript added " + str + " video state detection script to list.");
            } else {
                Logger.d(f6407a, "attachJsScript no need to add video state detection script. WebView : " + a2);
            }
            String a4 = a(str, a2);
            Logger.d(f6407a, "attachJsScript adding Xml Http Request Js Script . WebView : " + a2);
            hashMap.put(f6420o, a4);
            if (h2.b(AdNetworkConfiguration.SUPPORTS_BANNER_IMPRESSION_TRACKING) && h2.a(AdNetworkConfiguration.SHOULD_INJECT_JS_TO_WEBVIEWS_FOR_TEXT_EXTRACTION, true)) {
                if (!isInterstitialActivity) {
                    synchronized (f6416j) {
                        f6416j.put(a2, new WeakReference<>(webView));
                    }
                    hashMap.put(f6419n, c(str, a2));
                    Logger.d(f6407a, "attachJsScript added " + str + " text extraction script to list.");
                } else {
                    Logger.d(f6407a, "attachJsScript WebView is in an interstitial, skipping text extraction script. sdk: " + str + ", context = " + webView.getContext());
                }
            } else {
                Logger.d(f6407a, "attachJsScript no need to add text extraction script. sdkPackage = " + str + ", WebView : " + a2);
            }
            webView.post(new Runnable() {
                @Override
                public void run() {
                    if (Build.VERSION.SDK_INT >= 19) {
                        if (webView != null) {
                            for (String str3 : hashMap.keySet()) {
                                if (hashMap.get(str3) != null && ((String) hashMap.get(str3)).length() > 0) {
                                    String str4 = (String) hashMap.get(str3);
                                    l.b(SafeDKWebAppInterface.f6407a, "Injecting script for " + str + " WebView : " + a2 + ", url = " + str2 + ", script : " + str3);
                                    try {
                                        webView.evaluateJavascript(str4, null);
                                    } catch (Throwable th) {
                                        Logger.d(SafeDKWebAppInterface.f6407a, "attachJsScript Exception injecting text extraction script : " + th.getMessage(), th);
                                    }
                                }
                            }
                        }
                        hashMap.clear();
                        return;
                    }
                    for (String str5 : hashMap.keySet()) {
                        String str6 = (String) hashMap.get(str5);
                        if (str6 != null && str6.length() > 0 && webView != null) {
                            Logger.d(SafeDKWebAppInterface.f6407a, "attachJsScript Injecting script for " + str + " WebView : " + a2 + ", url = " + str2 + ", script : " + str5);
                            try {
                                webView.loadUrl(str6, null);
                            } catch (Throwable th2) {
                                Logger.d(SafeDKWebAppInterface.f6407a, "attachJsScript Exception injecting text extraction script : " + th2.getMessage(), th2);
                            }
                        }
                    }
                }
            });
        }
    }

    public static void a(String str) {
        synchronized (f6416j) {
            f6416j.remove(str);
        }
        Logger.d(f6407a, "WebView address removed : " + str);
    }
}