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;
}
}