Description:

Adjust Crosswalk Embedding API for following requirement:

1.      Customer requirement

2.      Moving current hidden API in internal classes with empty implementation 
(which will be meaningless if not exposed) out to embedding API.

3.      Deprecate enum type in current Embedding API and use const int instead.

4.      For those pairs of hidden API and Embedding API which are functionally 
duplicated, remove one of the pair.

5.      Remove dependency of internal classes of embedders. (Core shell/cordova 
container/etc.)



Affected Component

XWalk core library

XWalk embedding API



Related feature

https://crosswalk-project.org/jira/browse/XWALK-1040



Target release

Crosswalk8



Implementation details



For Classes exposed in Embedding API:

XWalkUIClient

    // Following two are moved from internal class XWalkWebChromeClient with 
empty implementation, thus getVideoLoadingProgressView is used by cordova

    public Bitmap getDefaultVideoPoster()

public View getVideoLoadingProgressView()



// This is required by customer 
(XWALK-1705<https://crosswalk-project.org/jira/browse/XWALK-1705>), also moved 
from XWalkWebChromeClient with empty implementation.
public boolean onCreateWindow(XWalkView view, boolean isDialog, boolean 
isUserGesture, Message resultMsg)

// Also moved from internal class XWalkWebChromeClient with empty 
implementation, thus onReceivedTitle is used in core shell

    public void onReceivedTitle(XWalkView view, String title)

    public void onReceivedIcon(XWalkView view, Bitmap icon)

public void onReceivedTouchIconUrl(XWalkView view, String url, boolean 
precomposed)



// Moved from internal class XWalkClient with empty implementation

    public boolean shouldOverrideKeyEvent(XWalkView view, KeyEvent event)

public void onUnhandledKeyEvent(XWalkView view, KeyEvent event)



// @deprecated, use const int instead of enum type

public enum JavascriptMessageType

public boolean onJavascriptModalDialog(XWalkView view, JavascriptMessageType 
type, String url, String message, String defaultValue, XWalkJavascriptResult 
result)

public final static int JAVASCRIPT_MESSAGE_ALERT = 1;

public final static int JAVASCRIPT_MESSAGE_CONFIRM = 2;

public final static int JAVASCRIPT_MESSAGE_PROMPT = 3;

public final static int JAVASCRIPT_MESSAGE_BEFOREUNLOAD = 4;

public boolean onJavascriptModalDialog(XWalkView view, int type, String url, 
String message, String defaultValue, XWalkJavascriptResult result)



XWalkNavigationHistory

// @deprecated, use const int instead of enum type

public enum Direction

public void navigate(Direction direction, int steps)

public final static int NAVIGATION_BACKWARD = 1;

public final static int NAVIGATION_FORWARD = 2;

public void navigate(int direction, int steps)



For Internal Classes:

APIs moved to Embedding API will be removed in internal classes. Besides,

XWalkClient

// Duplicate with shouldInterceptLoadRequest in XWalkResourceClient, remove 
this.

public boolean shouldOverrideUrlLoading(XWalkView view, String url)

// Duplicate with onLoadStarted/Finished in XWalkResourceClient, to intercept 
load of each resource, should use above API. onLoadStarted/Finished should be 
equal to pageStarted/Finished.

// Remove these two.

public void onPageStarted(XWalkView view, String url)

public void onPageFinished(XWalkView view, String url)

// Marked legacy in current code, remove it.

public void onLoadResource(XWalkView view, String url)



Thanks,

Shiliu
_______________________________________________
Crosswalk-dev mailing list
[email protected]
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev

Reply via email to