QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685

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


package com.tencent.mtt.businesscenter.page;

import android.text.TextUtils;
import com.tencent.common.http.NetUtils;
import com.tencent.common.utils.Md5Utils;
import com.tencent.luggage.wxa.ly.d;
import com.tencent.mtt.base.stat.StatManager;
import com.tencent.mtt.base.utils.DeviceUtils;
import com.tencent.mtt.base.webview.QBWebView;
import com.tencent.mtt.base.wup.DomainListDataManager;
import com.tencent.mtt.browser.window.IWebView;
import com.tencent.mtt.setting.PublicSettingManager;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Marker;

public class QBWebviewJSInjector {

    private volatile int f47178a;

    private List<String> f47179b;

    private List<String> f47180c;

    private String f47181d;

    public static class QBWebviewJSInjectorHolder {

        static final QBWebviewJSInjector f47182a = new QBWebviewJSInjector();

        private QBWebviewJSInjectorHolder() {
        }
    }

    private QBWebviewJSInjector() {
        this.f47178a = -1;
        this.f47181d = null;
        this.f47179b = new ArrayList();
        this.f47180c = new ArrayList();
    }

    private int a(boolean z) {
        int i = PublicSettingManager.a().getInt("KEY_PHONE_PERFORMANCE_VALUE", -1);
        if (i != -1 || z) {
            return i;
        }
        int C = DeviceUtils.C();
        PublicSettingManager.a().setInt("KEY_PHONE_PERFORMANCE_VALUE", C);
        return C;
    }

    public static QBWebviewJSInjector a() {
        return QBWebviewJSInjectorHolder.f47182a;
    }

    private String a(String str, List<String> list) {
        String str2;
        int i;
        int i2;
        String[] split;
        String str3 = null;
        if (TextUtils.isEmpty(str)) {
            return null;
        }
        if (str.startsWith(NetUtils.SCHEME_HTTP)) {
            i = 7;
        } else {
            if (!str.startsWith(NetUtils.SCHEME_HTTPS)) {
                str2 = null;
                if (!TextUtils.isEmpty(str2) || list == null || list.isEmpty()) {
                    return null;
                }
                for (i2 = 0; i2 < list.size(); i2++) {
                    String str4 = list.get(i2);
                    if (!TextUtils.isEmpty(str4) && (split = str4.split("\\|")) != null && split.length == 2 && !TextUtils.isEmpty(split[0]) && !TextUtils.isEmpty(split[1])) {
                        String str5 = split[0];
                        if (str5.startsWith("*.")) {
                            int indexOf = str2.indexOf(".");
                            if (indexOf != -1) {
                                try {
                                    String substring = str2.substring(indexOf + 1);
                                    String substring2 = str5.substring(2);
                                    if (!TextUtils.isEmpty(substring) && !TextUtils.isEmpty(substring2) && substring.startsWith(substring2)) {
                                        return split[1];
                                    }
                                } catch (Exception unused) {
                                    continue;
                                }
                            } else {
                                continue;
                            }
                        } else if (str5.equals(Marker.ANY_MARKER) || str2.startsWith(str5)) {
                            return split[1];
                        }
                    }
                }
                return str3;
            }
            i = 8;
        }
        str2 = str.substring(i);
        if (!TextUtils.isEmpty(str2)) {
            return null;
        }
        while (i2 < list.size()) {
        }
        return str3;
    }

    private void a(QBWebView qBWebView, String str) {
        if (TextUtils.equals(str, this.f47181d)) {
            this.f47181d = null;
            if (this.f47180c.isEmpty()) {
                this.f47180c.addAll(DomainListDataManager.a().a(d.CTRL_INDEX));
            }
            String a2 = a(str, this.f47180c);
            if (TextUtils.isEmpty(a2)) {
                return;
            }
            qBWebView.evaluateJavascript("javascript:(" + String.format("function(){var jsApiScript = document.createElement('script');\njsApiScript.setAttribute('type', 'text/javascript');\njsApiScript.setAttribute('src', '%s');\ndocument.body.appendChild(jsApiScript);}", a2) + "())", null);
        }
    }

    private void a(IWebView iWebView, String str, String str2) {
        String str3;
        if (iWebView instanceof QBWebView) {
        } else {
            iWebView.getQBWebView();
        }
        String str4 = "javascript:(" + String.format(str2, str) + "())";
        QBWebView qBWebView = iWebView.getQBWebView();
        if (qBWebView != null) {
            qBWebView.evaluateJavascript(str4, null);
            str3 = "EVAL";
        } else {
            str3 = "E_NOWEBVIEW";
        }
        a(str3, str);
    }

    private void a(String str, String str2) {
        StatManager.b().b("BONJS01_" + str);
        if (TextUtils.isEmpty(str2)) {
            return;
        }
        StatManager.b().b("BONJS01_" + str + "_" + Md5Utils.a(str2));
    }

    private void b(IWebView iWebView, String str) {
        if (b()) {
            if (this.f47179b.isEmpty()) {
                this.f47179b.addAll(DomainListDataManager.a().a(229));
            }
            String a2 = a(str, this.f47179b);
            if (!TextUtils.isEmpty(a2)) {
                a(iWebView, a2, "function(){var jsApiScript = document.createElement('script');\njsApiScript.setAttribute('type', 'text/javascript');\njsApiScript.setAttribute('src', 'https://jsapi.qq.com/get?api=qb.beacon');\njsApiScript.onload=function(){var injected = document.createElement('script');\ninjected.setAttribute('type', 'text/javascript');\ninjected.setAttribute('src', '%s');\ndocument.body.appendChild(injected);};\ndocument.body.appendChild(jsApiScript);}");
            } else if (this.f47179b.isEmpty()) {
                a("E_NOCONFIG", (String) null);
            }
        }
    }

    private boolean b() {
        String str;
        StringBuilder sb;
        if (this.f47178a != -1) {
            return this.f47178a == 1;
        }
        this.f47178a = 1;
        int a2 = a(false);
        if (a2 == -1) {
            this.f47178a = 0;
            sb = new StringBuilder();
        } else {
            if (a2 != 0) {
                if (PublicSettingManager.a().getBoolean("PREFERENCE_TYPE_ENABLE_INJECT_JAVA_SCRIPT", true)) {
                    return true;
                }
                this.f47178a = 0;
                str = "E_PREFDISABLED";
                a(str, (String) null);
                return false;
            }
            this.f47178a = 0;
            sb = new StringBuilder();
        }
        sb.append("E_DEVPERF_");
        sb.append(a2);
        str = sb.toString();
        a(str, (String) null);
        return false;
    }

    public void a(IWebView iWebView, String str) {
        if (iWebView == null || TextUtils.isEmpty(str)) {
            return;
        }
        b(iWebView, str);
        QBWebView qBWebView = iWebView.getQBWebView();
        if (qBWebView == null) {
            return;
        }
        a(qBWebView, str);
    }

    public void a(String str) {
        this.f47181d = str;
    }
}