Could you explain a bit more what the slowness is exactly? Is it slow startup 
time, slow animation performance, etc.?

From: Crosswalk-help 
<[email protected]<mailto:[email protected]>>
 on behalf of medlamine Semassel 
<[email protected]<mailto:[email protected]>>
Date: Wednesday 30 March 2016 18:01
To: 
"[email protected]<mailto:[email protected]>"
 
<[email protected]<mailto:[email protected]>>
Subject: [Crosswalk-help] Fwd: #Baleboy #v17 slowless


---------- Forwarded message ----------
From: medlamine Semassel 
<[email protected]<mailto:[email protected]>>
Date: 2016-03-30 16:37 GMT+02:00
Subject: #Baleboy #v17 slowless
To: 
[email protected]<mailto:[email protected]>



---------- Forwarded message ----------
From: medlamine Semassel 
<[email protected]<mailto:[email protected]>>
Date: 2016-03-21 17:52 GMT+01:00
Subject: Slowness with xwalkview 17 on Android
To: 
[email protected]<mailto:[email protected]>


Hi,

I was following with you this issue on Tweeter @LamineMEHD.

The problem is the xwalk_core-library 17 is slowest very slow, I switch to the 
16 and I delete xwalksetting function ( User Agent ) and the view is loading 
very well.

find blow a simple of my webview



public class MyNewWebView extends XWalkView {

    private static final String TAG = "KWebView";
    private static final String URL_LOGO = 
"file:///android_asset/www/LogoLM.png";
    private String mDefaultUrl;
    private Integer mRefreshInterval;
    private String mNumSite;
    private Handler mTimer;
    private Runnable mRefreshWebViewTask;

    public void setTracker(Tracker tracker) {
        Tracker tracker1 = tracker;
    }

    public MyNewWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.clearCache(true);
        this.setResourceClient(new MyResourceClient(this));
        this.setUIClient(new MyUIClient(this));
    }

    public String getDefaultUrl() {
        return mDefaultUrl;
    }

    public void loadDefaultUrl() {
        if (mDefaultUrl != null) {
            resetRefreshTimer();
            //Cookies
            try {
                URL url = new URL(this.getDefaultUrl());
                String[] splitedUrlDomain = 
url.getHost().split(Pattern.quote("."));
                if (splitedUrlDomain.length >= 2) {
                    String urlDomain = splitedUrlDomain[splitedUrlDomain.length 
- 2] + "." + splitedUrlDomain[splitedUrlDomain.length - 1];

                    XWalkCookieManagerInternal xWalkCookieManager = new 
XWalkCookieManagerInternal();
                    xWalkCookieManager.setAcceptCookie(true);
                    xWalkCookieManager.setAcceptFileSchemeCookies(true);
                    xWalkCookieManager.setCookie(url.getProtocol() + "://" + 
url.getHost(), "tabLM=" + this.mNumSite + " ; Domain=." + urlDomain);
                    xWalkCookieManager.flushCookieStore();


                    Log.d(TAG, "cookie ------>" + 
xWalkCookieManager.getCookie(url.getProtocol() + "://" + url.getHost()));
                } else {
                    Log.e(TAG, "cannot create cookie for " + 
this.getDefaultUrl());
                }
            } catch (MalformedURLException e) {
                Log.e(TAG, e.toString());
            }
            this.load(mDefaultUrl, null);
        } else {
            this.load(URL_LOGO, null);
        }
    }


    public void resetRefreshTimer() {
        if (mRefreshInterval != 0) {
            if (mTimer != null)
                mTimer.removeCallbacks(mRefreshWebViewTask);
            mTimer = new Handler();
            mRefreshWebViewTask = new Runnable() {
                @Override
                public void run() {
                    // On lance le raffraichissement dans le thread UI
                    ((Activity) getContext()).runOnUiThread(new Runnable() {
                        public void run() {
                            Log.i(TAG, "Raffraichissement demandée de la 
webview ");
                            loadDefaultUrl();


                        }
                    });
                }
            };
            // lancement de la tache toutes mRefreshInterval min
            mTimer.postDelayed(mRefreshWebViewTask, 1000 * 60 * 
mRefreshInterval);
        }
    }

    public void setRefreshInterval(Integer refreshInterval) {
        mRefreshInterval = refreshInterval;
    }

    public void setOverrideUrl(Boolean overrideUrl) {
        Boolean overrideUrl1 = overrideUrl;
    }

    public void setNumSite(String numSite) {
        mNumSite = numSite;
    }

    public void setAuthorizedDomains(String domains) {
        String domains1 = domains;
    }

    public void setDefaultUrl(String defaultUrl) {
        mDefaultUrl = defaultUrl;
    }

    public class MyResourceClient extends XWalkResourceClient {

        public MyResourceClient(XWalkView view) {
            super(view);
        }


       @Override
        public void onReceivedSslError(XWalkView view, ValueCallback<Boolean> 
callback, SslError error) {
            Log.d("DEBUG", "onReceivedSslError");
            //désactive les erreurs SSL
            //TODO : rajouter les certificats ADEO dans le keystore
            callback.onReceiveValue(true);
        }

        @Override
        public boolean shouldOverrideUrlLoading(XWalkView xWalkView, String 
url) {

            if (url.contains("youtube")) {
                Log.d("Mohamed", url);
                /** Le Toast pour les URLs Interdites **/
                Toast.makeText(getContext(), "This Link is Forbiden", 
Toast.LENGTH_LONG).show();
                return true;
            }
            Log.d("Vincent", url);
            return false;
        }

        @Override
        public XWalkWebResourceResponse shouldInterceptLoadRequest(XWalkView 
view, XWalkWebResourceRequest request) {
            Log.d("yeah", request.getUrl().toString());
            return super.shouldInterceptLoadRequest(view, request);
        }
    }

    class MyUIClient extends XWalkUIClient {
        MyUIClient(XWalkView view) {
            super(view);
        }

        @Override
        public void onFullscreenToggled(XWalkView view, boolean 
enterFullscreen) {
            super.onFullscreenToggled(view, enterFullscreen);
            view.hasEnteredFullscreen();
        }

    }
}

and


public class MyWebViewFragment extends Fragment {
    private MyNewWebView mXWalkView;
    private static final String TAG         = "KFragment";
    public static final String ARG_URL      = "url";
    public static final String ARG_NAME     = "name";
    public static final String ARG_ZOOM     = "ZOOM";
    public static final String ARG_REFRESH  = "REFRESH";
    public static final String ARG_OVERRIDE = "OVERRIDE";
    public static final String ARG_DOMAINS  = "DOMAINS";
    public static final String ARG_NUMSITE  = "NUMSITE";
    public static final String ARG_UA       = "UA";
    public static final String ARG_APPEND   = "APPEND";





    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) {

        Bundle args = getArguments();
        MyApp app = (MyApp) getActivity().getApplication();
        View v = inflater.inflate(R.layout.webview_fragment, null);
        mXWalkView = (MyNewWebView) v.findViewById(R.id.webView);
        XWalkPreferences.setValue("enable-javascript", true);
        XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
        
XWalkPreferences.setValue(XWalkPreferences.ALLOW_UNIVERSAL_ACCESS_FROM_FILE, 
true);
        XWalkPreferences.setValue(XWalkPreferences.JAVASCRIPT_CAN_OPEN_WINDOW, 
true);
        XWalkPreferences.setValue(XWalkPreferences.SUPPORT_MULTIPLE_WINDOWS, 
true);

        mXWalkView.setLayerType(View.LAYER_TYPE_HARDWARE, null);


        if (args.getString(ARG_UA) != "") {

            mXWalkView.getSettings().setUserAgentString(args.getString(ARG_UA));
        }else if (args.getString(ARG_APPEND) != "") {
            
mXWalkView.getSettings().setUserAgentString(mXWalkView.getSettings().getUserAgentString()
 + " " + args.getString(ARG_APPEND));
        }

        mXWalkView.setDefaultUrl(args.getString(ARG_URL));
        //Récupère la valeur zoom du JSON sinon 100%
        mXWalkView.getSettings().setInitialPageScale((float) 
args.getInt(ARG_ZOOM, 100));
        mXWalkView.setOverrideUrl(args.getBoolean(ARG_OVERRIDE));
        //Récupère la valeur refresh du JSON sinon 0 sec
        mXWalkView.setRefreshInterval(args.getInt(ARG_REFRESH, 0));
        mXWalkView.setNumSite(String.format("%03d", args.getInt(ARG_NUMSITE)));
        mXWalkView.setAuthorizedDomains(args.getString(ARG_DOMAINS));
        mXWalkView.setTracker(app.getTracker());
        mXWalkView.loadDefaultUrl();


        mXWalkView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getActionMasked();
                switch (action) {
                    case MotionEvent.ACTION_DOWN:
                        mXWalkView.resetRefreshTimer();


                        break;
                }
                return false;
            }
        });

        return v;
    }

    public void refreshWebView() {
        if (mXWalkView != null)
            mXWalkView.loadDefaultUrl();
    }

    public void navigateBack() {
        mXWalkView.clearCache(true);
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mXWalkView.onDestroy();
    }
}



----------------------


--
Cordialement Medlamine



--
Cordialement Medlamine



--
Cordialement Medlamine
---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
Crosswalk-help mailing list
[email protected]
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help

Reply via email to