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
