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

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


package com.tencent.mtt.businesscenter.page;

import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.view.View;
import android.webkit.ValueCallback;
import android.widget.LinearLayout;
import com.tencent.common.featuretoggle.FeatureToggle;
import com.tencent.common.manifest.AppManifest;
import com.tencent.common.manifest.EventEmiter;
import com.tencent.common.manifest.EventMessage;
import com.tencent.common.manifest.annotation.CreateMethod;
import com.tencent.common.manifest.annotation.EventReceiver;
import com.tencent.common.threadpool.BrowserExecutorSupplier;
import com.tencent.common.utils.UrlUtils;
import com.tencent.mtt.R;
import com.tencent.mtt.base.functionwindow.IFunctionWndFactory;
import com.tencent.mtt.base.notification.facade.IMessageBubbleService;
import com.tencent.mtt.base.notification.facade.INotify;
import com.tencent.mtt.base.skin.MttResources;
import com.tencent.mtt.base.stat.utils.PlatformStatUtils;
import com.tencent.mtt.base.webview.QBWebView;
import com.tencent.mtt.base.webview.common.HitTestResult;
import com.tencent.mtt.base.webview.common.IWebBackForwardList;
import com.tencent.mtt.base.webview.common.QBWebViewClient;
import com.tencent.mtt.browser.plugin.facade.IPluginService;
import com.tencent.mtt.browser.security.SecurityManager;
import com.tencent.mtt.browser.security.datastruct.WebBehivorInfo;
import com.tencent.mtt.browser.window.IWebView;
import com.tencent.mtt.browser.window.IWebViewClient;
import com.tencent.mtt.browser.window.PageFrame;
import com.tencent.mtt.browser.window.UrlParams;
import com.tencent.mtt.browser.window.WindowManager;
import com.tencent.mtt.browser.window.templayer.QBWebviewWrapper;
import com.tencent.mtt.browser.window.templayer.WebviewBackReportHelper;
import com.tencent.mtt.businesscenter.config.BusinessSettingKeys;
import com.tencent.mtt.businesscenter.facade.IFrameworkDelegate;
import com.tencent.mtt.businesscenter.facade.IWebPageStatService;
import com.tencent.mtt.businesscenter.facade.PageVideoExtension;
import com.tencent.mtt.external.pagetoolbox.facade.IPageToolBoxGuideService;
import com.tencent.mtt.external.pagetoolbox.facade.PageToolBoxGuideBean;
import com.tencent.mtt.log.access.Logs;
import com.tencent.mtt.qbcontext.core.QBContext;
import com.tencent.mtt.qbcontext.interfaces.window.PageMiscCallbackExtension;
import com.tencent.mtt.resource.UIResourceDimen;
import com.tencent.mtt.search.facade.ISearchService;
import com.tencent.mtt.setting.PublicSettingManager;
import com.tencent.mtt.uifw2.base.resource.QBResource;
import com.tencent.mtt.view.common.QBTextView;
import com.tencent.mtt.view.dialog.alert.NewQBAlertDialogBuilder;
import com.tencent.mtt.view.dialog.alert.QBAlertDialog;
import com.tencent.qqlive.module.videoreport.collect.EventCollector;
import com.tencent.smtt.export.external.interfaces.JsResult;
import com.tencent.thumbplayer.tplayer.plugins.report.TPReportKeys;
import com.xiaomi.mipush.sdk.PushMessageHelper;
import java.util.Set;
import qb.a.e;
import qb.a.f;
import qb.business.BuildConfig;

public class DefaultWebViewClientExtension extends QBWebViewClientExtension {

    protected Handler f47023a;
    private QBWebView g;
    private QBWebviewWrapper h;
    private DefaultWebViewClient i;
    private IWebViewClient j;
    private boolean k;
    private int l;

    public DefaultWebViewClientExtension(QBWebView qBWebView, QBWebviewWrapper qBWebviewWrapper, QBWebViewClient qBWebViewClient, IWebViewClient iWebViewClient) {
        super(qBWebView, qBWebViewClient, null);
        this.f47023a = new Handler(Looper.getMainLooper());
        this.k = false;
        this.l = -100;
        this.g = qBWebView;
        this.h = qBWebviewWrapper;
        this.j = iWebViewClient;
        if (qBWebViewClient instanceof DefaultWebViewClient) {
            this.i = (DefaultWebViewClient) qBWebViewClient;
            this.i.a(this);
        }
        EventEmiter.getDefault().register(INotify.EVENT_BUBBLE_CLOSED, this);
    }

    public String f(String str) {
        QBWebView qBWebView = this.g;
        String url = qBWebView != null ? qBWebView.getUrl() : null;
        return url == null ? str : url;
    }

    private boolean g(String str) {
        return !TextUtils.isEmpty(str) && UrlUtils.getHost(str).startsWith("bookshelf.html5.qq.com") && TextUtils.equals("1", UrlUtils.getUrlParamValue(str, "errorReport"));
    }

    public boolean n() {
        if (!FeatureToggle.a(BuildConfig.FEATURE_TOGGLE_TOOLBOX_TRANS_869161873)) {
            return true;
        }
        int i = PublicSettingManager.a().getInt("SHOW_TOOL_GUIDE_REMAIN_TIME", 3);
        if (i <= 0) {
            return false;
        }
        PublicSettingManager.a().setInt("SHOW_TOOL_GUIDE_REMAIN_TIME", i - 1);
        Logs.c("DefaultWebViewClientExtension", "Remaining time = " + i);
        return true;
    }

    @Override
    public Object a(String str, Bundle bundle) {
        PageMiscCallbackExtension[] pageMiscCallbackExtensionArr = (PageMiscCallbackExtension[]) AppManifest.getInstance().queryExtensions(PageMiscCallbackExtension.class, str);
        if (pageMiscCallbackExtensionArr.length > 0) {
            return pageMiscCallbackExtensionArr[0].onMiscCallBack(this.g, str, bundle);
        }
        return null;
    }

    @Override
    public void a(int i) {
        this.j.getBussinessProxy().c(this.h, i);
        this.j.setPageState((byte) 1);
    }

    @Override
    public void a(int i, int i2) {
        this.j.getBussinessProxy().a(i, i2);
    }

    @Override
    public void a(int i, int i2, int i3) {
    }

    @Override
    public void a(int i, int i2, String str) {
        this.j.getBussinessProxy().a(this.h, i, i2, str);
    }

    @Override
    public void a(int i, int i2, String str, boolean z) {
        this.j.getBussinessProxy().a(i, i2, str, z);
    }

    @Override
    public void a(int i, String str) {
        this.j.getBussinessProxy().a(i, str);
    }

    @Override
    public void a(final int i, final String str, final String str2, final int i2) {
        final boolean z;
        this.l = i;
        if (!this.h.isActive()) {
            return;
        }
        boolean z2 = true;
        if (i != -2 && i != -1) {
            if (i == 1) {
                this.k = false;
                z = true;
                if (z2) {
                }
            } else {
                if (i != 3 && i != 4) {
                    z2 = true ^ this.k;
                    z = false;
                    if (z2) {
                        BrowserExecutorSupplier.forMainThreadTasks().execute(new Runnable() {
                            @Override
                            public void run() {
                                Bundle bundle = new Bundle(9);
                                bundle.putInt(TPReportKeys.Common.COMMON_STEP, i);
                                bundle.putString("source_lang", str);
                                bundle.putString("target_lang", str2);
                                bundle.putInt(PushMessageHelper.ERROR_TYPE, i2);
                                PageFrame s = WindowManager.a().s();
                                StringBuilder sb = new StringBuilder();
                                sb.append(s != null ? Integer.valueOf(s.hashCode()) : "");
                                sb.append(DefaultWebViewClientExtension.this.f(""));
                                bundle.putString("key", sb.toString());
                                EventEmiter.getDefault().emit(new EventMessage("TranslateNotify", bundle));
                                if (!z || DefaultWebViewClientExtension.this.g == null) {
                                    return;
                                }
                                String url = DefaultWebViewClientExtension.this.g.getUrl();
                                if (TextUtils.isEmpty(url) || !DefaultWebViewClientExtension.this.n()) {
                                    return;
                                }
                                PageToolBoxGuideBean pageToolBoxGuideBean = new PageToolBoxGuideBean();
                                pageToolBoxGuideBean.f56136a = IPluginService.PLUGIN_ADDON_DITC;
                                pageToolBoxGuideBean.f56137b = url;
                                pageToolBoxGuideBean.g = new Runnable() {
                                    @Override
                                    public void run() {
                                        ((IFrameworkDelegate) QBContext.getInstance().getService(IFrameworkDelegate.class)).doLoad(new UrlParams("qb://plugin/dict").b(1).c(31).a((Bundle) null));
                                    }
                                };
                                pageToolBoxGuideBean.h = new PageToolBoxGuideBean.StatCallBack() {
                                    @Override
                                    public void a(int i3) {
                                        IWebPageStatService iWebPageStatService;
                                        String str3;
                                        if (i3 == 1) {
                                            iWebPageStatService = (IWebPageStatService) QBContext.getInstance().getService(IWebPageStatService.class);
                                            str3 = "web_0103";
                                        } else if (i3 == 2) {
                                            iWebPageStatService = (IWebPageStatService) QBContext.getInstance().getService(IWebPageStatService.class);
                                            str3 = "web_0104";
                                        } else if (i3 == 3) {
                                            iWebPageStatService = (IWebPageStatService) QBContext.getInstance().getService(IWebPageStatService.class);
                                            str3 = "web_0105";
                                        } else {
                                            if (i3 != 4) {
                                                return;
                                            }
                                            iWebPageStatService = (IWebPageStatService) QBContext.getInstance().getService(IWebPageStatService.class);
                                            str3 = "web_0102";
                                        }
                                        iWebPageStatService.stat(str3);
                                    }
                                };
                                pageToolBoxGuideBean.f56138c = "该网页可翻译为中文";
                                pageToolBoxGuideBean.a("https://res.imtt.qq.com/res_mtt/plugin/lottie/translate_guide_0814.json", "https://res.imtt.qq.com/res_mtt/plugin/lottie/translate_guide_0814_night.json", "https://static.res.qq.com/nav/lottie/translate_guide_0506_dark.json");
                                EventEmiter.getDefault().emit(new EventMessage(IPageToolBoxGuideService.EVENT_TOOL_GUIDE, pageToolBoxGuideBean));
                            }
                        });
                        return;
                    }
                    return;
                }
                z2 = true ^ this.k;
            }
        }
        this.k = false;
        z = false;
        if (z2) {
        }
    }

    @Override
    public void a(String str) {
        this.j.getBussinessProxy().a(str, this.h);
    }

    @Override
    public void a(String str, int i) {
    }

    @Override
    public void a(String str, String str2) {
    }

    @Override
    public void a(String str, String str2, String str3, int i) {
        this.j.getBussinessProxy().a(str, str2, str3, i);
    }

    @Override
    public void a(String str, String str2, boolean z, String str3) {
        PageVideoExtension pageVideoExtension = (PageVideoExtension) AppManifest.getInstance().queryExtension(PageVideoExtension.class, null);
        if (pageVideoExtension != null) {
            pageVideoExtension.handlePluginTag(this.g, str, str2, z, str3);
        }
    }

    @Override
    public void a(String str, boolean z, long j, String str2, int i) {
        this.j.getBussinessProxy().a(str, z, j, str2, i);
    }

    @Override
    public void a(Set<String> set, Set<String> set2) {
        super.a(set, set2);
    }

    @Override
    public void a(boolean z) {
        if (this.f != null) {
            this.f.b();
        }
    }

    @Override
    public boolean a() {
        HitTestResult hitTestResult = this.g.getHitTestResult();
        if (hitTestResult != null && hitTestResult.b() == 9) {
            this.g.setTextFieldInLongPressStatus(true);
        }
        if (this.f != null) {
            this.f.a(this.g.getView());
        }
        return true;
    }

    @Override
    public boolean a(String str, JsResult jsResult) {
        IWebBackForwardList copyQBBackForwardList;
        QBWebView qBWebView = this.g;
        if (qBWebView != null && (copyQBBackForwardList = qBWebView.copyQBBackForwardList()) != null) {
            WebviewBackReportHelper.a().a(copyQBBackForwardList, 3);
        }
        if (!TextUtils.isEmpty(str)) {
            WebBehivorInfo webBehivorInfo = new WebBehivorInfo();
            webBehivorInfo.f44602a = str;
            webBehivorInfo.f44603b = 2;
            SecurityManager.a().a(webBehivorInfo);
        }
        jsResult.confirm();
        return true;
    }

    @Override
    public boolean a(String str, String[] strArr, ValueCallback<Boolean> valueCallback, boolean z) {
        return this.j.getBussinessProxy().a(str, strArr, valueCallback, z);
    }

    @Override
    public void b(int i, String str) {
        this.j.onPreloadCallback(i, str, this.g);
    }

    @Override
    public void b(String str, int i) {
        ISearchService iSearchService;
        super.b(str, i);
        PageFrame s = WindowManager.a().s();
        if (s == null) {
            return;
        }
        IWebView currentWebView = s.getCurrentWebView();
        IWebView webViewOffset = s.getWebViewOffset(-1);
        if (currentWebView == null || webViewOffset == null || this.g == null) {
            return;
        }
        boolean equals = TextUtils.equals(currentWebView.getUrl(), this.g.getUrl());
        boolean z = !TextUtils.isEmpty(webViewOffset.getUrl()) && webViewOffset.getUrl().startsWith("qb://search");
        boolean g = g(webViewOffset.getUrl());
        if (!((equals && z) || g) || (iSearchService = (ISearchService) QBContext.getInstance().getService(ISearchService.class)) == null) {
            return;
        }
        iSearchService.onLoadSearchResultPageFail(str, i, !currentWebView.canGoBack(), false);
    }

    @Override
    public void c() {
        this.j.getBussinessProxy().z();
    }

    @Override
    public void d() {
        IWebViewClient iWebViewClient = this.j;
        QBWebView qBWebView = this.g;
        DefaultWebViewClient defaultWebViewClient = this.i;
        iWebViewClient.onPrefetchPageBackOrForwardChanged(qBWebView, defaultWebViewClient == null || defaultWebViewClient.a());
    }

    @Override
    public boolean d(String str) {
        return false;
    }

    @Override
    public void e() {
        this.j.onProgressChanged(this.h, -1);
        this.j.onTransitionToCommitted(this.h);
        DefaultWebViewClient defaultWebViewClient = this.i;
        if (defaultWebViewClient != null) {
            defaultWebViewClient.b();
        }
    }

    @Override
    public void e(String str) {
        this.h.getAddressBarDataSource().a(true, false);
        super.e(str);
    }

    @Override
    public void h() {
        this.j.getBussinessProxy().g(this.h);
    }

    @Override
    public void i() {
        EventEmiter.getDefault().unregister(INotify.EVENT_BUBBLE_CLOSED, this);
        ((INotify) QBContext.getInstance().getService(INotify.class)).closeBubble(IMessageBubbleService.MESSAGE_MODE_SHOW_TRANSLATE);
        this.k = true;
    }

    @Override
    public void j() {
        QBWebView qBWebView = this.g;
        if (qBWebView != null) {
            String url = qBWebView.getUrl();
            if (PublicSettingManager.a().getInt("toolbox_current_support_type", 0) != 0) {
                PlatformStatUtils.a("ON_OLD_NOVEL_RECOGNITION");
                return;
            }
            if (TextUtils.isEmpty(url)) {
                return;
            }
            PageToolBoxGuideBean pageToolBoxGuideBean = new PageToolBoxGuideBean();
            pageToolBoxGuideBean.f56136a = IPluginService.PLUGIN_TTS;
            pageToolBoxGuideBean.f56137b = url;
            pageToolBoxGuideBean.f56138c = "主播为你朗读当前网页";
            pageToolBoxGuideBean.a("https://res.imtt.qq.com/res_mtt/plugin/lottie/tts_mode_guide_0927.json", "https://res.imtt.qq.com/res_mtt/plugin/lottie/tts_mode_guide_0927_night.json");
            EventEmiter.getDefault().emit(new EventMessage(IPageToolBoxGuideService.EVENT_TOOL_GUIDE, pageToolBoxGuideBean));
            PublicSettingManager.a().setInt("toolbox_current_support_type", 1);
        }
    }

    @Override
    public void k() {
    }

    @Override
    public void l() {
    }

    @EventReceiver(createMethod = CreateMethod.NONE, eventName = INotify.EVENT_BUBBLE_CLOSED)
    public void onTranslateBubbleClosed(EventMessage eventMessage) {
        if ((eventMessage.arg instanceof Integer) && ((Integer) eventMessage.arg).intValue() == 6291456 && WindowManager.t() == this.h) {
            if (this.l == 2) {
                this.k = true;
            }
            if (this.l == 1) {
                QBTextView qBTextView = new QBTextView(this.g.getContext());
                LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(-2, -2);
                layoutParams.gravity = 17;
                qBTextView.setLayoutParams(layoutParams);
                qBTextView.setLineSpacing(UIResourceDimen.a(5.0f), 1.0f);
                qBTextView.setTextColor(QBResource.b(e.n));
                qBTextView.setTextSize(MttResources.h(f.cZ));
                qBTextView.setText(R.string.bqq);
                if (PublicSettingManager.a().getBoolean(BusinessSettingKeys.f46815a, false)) {
                    return;
                }
                final QBAlertDialog a2 = new NewQBAlertDialogBuilder().d(R.string.a9o).e(R.string.ud).a(this.g.getContext());
                a2.b(qBTextView);
                a2.a(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        EventCollector.getInstance().onViewClickedBefore(view);
                        if (view.getId() == 100) {
                            Bundle bundle = new Bundle();
                            bundle.putInt("ViewID", 46);
                            ((IFrameworkDelegate) QBContext.getInstance().getService(IFrameworkDelegate.class)).doLoad(new UrlParams(IFunctionWndFactory.WND_SETTING).d(2).a(bundle).d(true));
                        }
                        a2.dismiss();
                        EventCollector.getInstance().onViewClicked(view);
                    }
                });
                a2.show();
                PublicSettingManager.a().setBoolean(BusinessSettingKeys.f46815a, true);
            }
        }
    }
}