Loading api/current.txt +22 −0 Original line number Diff line number Diff line Loading @@ -36925,6 +36925,26 @@ package android.webkit { method public abstract void onReceivedIcon(java.lang.String, android.graphics.Bitmap); } public class WebMessage { ctor public WebMessage(java.lang.String); ctor public WebMessage(java.lang.String, android.webkit.WebMessagePort[]); method public java.lang.String getData(); method public android.webkit.WebMessagePort[] getPorts(); } public abstract class WebMessagePort { ctor public WebMessagePort(); method public abstract void close(); method public abstract void postMessage(android.webkit.WebMessage); method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback); method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback, android.os.Handler); } public static abstract class WebMessagePort.WebMessageCallback { ctor public WebMessagePort.WebMessageCallback(); method public void onMessage(android.webkit.WebMessagePort, android.webkit.WebMessage); } public abstract class WebResourceError { ctor public WebResourceError(); method public abstract java.lang.String getDescription(); Loading Loading @@ -37168,6 +37188,7 @@ package android.webkit { method public android.webkit.WebBackForwardList copyBackForwardList(); method public deprecated android.print.PrintDocumentAdapter createPrintDocumentAdapter(); method public android.print.PrintDocumentAdapter createPrintDocumentAdapter(java.lang.String); method public android.webkit.WebMessagePort[] createWebMessageChannel(); method public void destroy(); method public void documentHasImages(android.os.Message); method public static void enableSlowWholeDocumentDraw(); Loading Loading @@ -37208,6 +37229,7 @@ package android.webkit { method public boolean pageDown(boolean); method public boolean pageUp(boolean); method public void pauseTimers(); method public void postMessageToMainFrame(android.webkit.WebMessage, android.net.Uri); method public void postUrl(java.lang.String, byte[]); method public void reload(); method public void removeJavascriptInterface(java.lang.String); api/system-current.txt +24 −0 Original line number Diff line number Diff line Loading @@ -39154,6 +39154,26 @@ package android.webkit { method public abstract void onReceivedIcon(java.lang.String, android.graphics.Bitmap); } public class WebMessage { ctor public WebMessage(java.lang.String); ctor public WebMessage(java.lang.String, android.webkit.WebMessagePort[]); method public java.lang.String getData(); method public android.webkit.WebMessagePort[] getPorts(); } public abstract class WebMessagePort { ctor public WebMessagePort(); method public abstract void close(); method public abstract void postMessage(android.webkit.WebMessage); method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback); method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback, android.os.Handler); } public static abstract class WebMessagePort.WebMessageCallback { ctor public WebMessagePort.WebMessageCallback(); method public void onMessage(android.webkit.WebMessagePort, android.webkit.WebMessage); } public abstract class WebResourceError { ctor public WebResourceError(); method public abstract java.lang.String getDescription(); Loading Loading @@ -39411,6 +39431,7 @@ package android.webkit { method public android.webkit.WebBackForwardList copyBackForwardList(); method public deprecated android.print.PrintDocumentAdapter createPrintDocumentAdapter(); method public android.print.PrintDocumentAdapter createPrintDocumentAdapter(java.lang.String); method public android.webkit.WebMessagePort[] createWebMessageChannel(); method public void destroy(); method public void documentHasImages(android.os.Message); method public static void enableSlowWholeDocumentDraw(); Loading Loading @@ -39452,6 +39473,7 @@ package android.webkit { method public boolean pageDown(boolean); method public boolean pageUp(boolean); method public void pauseTimers(); method public void postMessageToMainFrame(android.webkit.WebMessage, android.net.Uri); method public void postUrl(java.lang.String, byte[]); method public void reload(); method public void removeJavascriptInterface(java.lang.String); Loading Loading @@ -39664,6 +39686,7 @@ package android.webkit { method public abstract void clearView(); method public abstract android.webkit.WebBackForwardList copyBackForwardList(); method public abstract android.print.PrintDocumentAdapter createPrintDocumentAdapter(java.lang.String); method public abstract android.webkit.WebMessagePort[] createWebMessageChannel(); method public abstract void destroy(); method public abstract void documentHasImages(android.os.Message); method public abstract void dumpViewHierarchyWithProperties(java.io.BufferedWriter, int); Loading Loading @@ -39710,6 +39733,7 @@ package android.webkit { method public abstract boolean pageDown(boolean); method public abstract boolean pageUp(boolean); method public abstract void pauseTimers(); method public abstract void postMessageToMainFrame(android.webkit.WebMessage, android.net.Uri); method public abstract void postUrl(java.lang.String, byte[]); method public abstract void reload(); method public abstract void removeJavascriptInterface(java.lang.String); core/java/android/webkit/WebMessage.java 0 → 100644 +62 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.webkit; /** * The Java representation of the HTML5 PostMessage event. See * https://html.spec.whatwg.org/multipage/comms.html#the-messageevent-interfaces * for definition of a MessageEvent in HTML5. * */ public class WebMessage { private String mData; private WebMessagePort[] mPorts; /** * Creates a WebMessage. * @param data the data of the message. */ public WebMessage(String data) { mData = data; } /** * Creates a WebMessage. * @param data the data of the message. * @param ports the ports that are sent with the message. */ public WebMessage(String data, WebMessagePort[] ports) { mData = data; mPorts = ports; } /** * Returns the data of the message. */ public String getData() { return mData; } /** * Returns the ports that are sent with the message, or null if no port * is sent. */ public WebMessagePort[] getPorts() { return mPorts; } } core/java/android/webkit/WebMessagePort.java 0 → 100644 +86 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.webkit; import android.os.Handler; /** * The Java representation of the HTML5 Message Port. See * https://html.spec.whatwg.org/multipage/comms.html#messageport * for definition of MessagePort in HTML5. * * A Message port represents one endpoint of a Message Channel. In Android * webview, there is no separate Message Channel object. When a message channel * is created, both ports are tangled to each other and started, and then * returned in a MessagePort array, see {@link WebView#createWebMessageChannel} * for creating a message channel. * * When a message port is first created or received via transfer, it does not * have a WebMessageCallback to receive web messages. The messages are queued until * a WebMessageCallback is set. */ public abstract class WebMessagePort { /** * The listener for handling MessagePort events. The message callback * methods are called on the main thread. If the embedder application * wants to receive the messages on a different thread, it can do this * by passing a Handler in * {@link WebMessagePort#setWebMessageCallback(WebMessageCallback, Handler)}. * In the latter case, the application should be extra careful for thread safety * since WebMessagePort methods should be called on main thread. */ public static abstract class WebMessageCallback { /** * Message callback for receiving onMessage events. * * @param port the WebMessagePort that the message is destined for * @param message the message from the entangled port. */ public void onMessage(WebMessagePort port, WebMessage message) { } } /** * Post a WebMessage to the entangled port. * * @param message the message from Java to JS. * * @throws IllegalStateException If message port is already transferred or closed. */ public abstract void postMessage(WebMessage message); /** * Close the message port and free any resources associated with it. */ public abstract void close(); /** * Sets a callback to receive message events on the main thread. * * @param callback the message callback. */ public abstract void setWebMessageCallback(WebMessageCallback callback); /** * Sets a callback to receive message events on the handler that is provided * by the application. * * @param callback the message callback. * @param handler the handler to receive the message messages. */ public abstract void setWebMessageCallback(WebMessageCallback callback, Handler handler); } core/java/android/webkit/WebView.java +32 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.graphics.Picture; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.net.http.SslCertificate; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Looper; Loading Loading @@ -1824,6 +1825,37 @@ public class WebView extends AbsoluteLayout mProvider.removeJavascriptInterface(name); } /** * Creates a message channel to communicate with JS and returns the message * ports that represent the endpoints of this message channel. The HTML5 message * channel functionality is described here: * https://html.spec.whatwg.org/multipage/comms.html#messagechannel * * The returned message channels are entangled and already in started state. * * @return the two message ports that form the message channel. */ public WebMessagePort[] createWebMessageChannel() { checkThread(); if (TRACE) Log.d(LOGTAG, "createWebMessageChannel"); return mProvider.createWebMessageChannel(); } /** * Post a message to main frame. The embedded application can restrict the * messages to a certain target origin. See * https://html.spec.whatwg.org/multipage/comms.html#posting-messages * for how target origin can be used. * * @param message the WebMessage * @param targetOrigin the target origin. */ public void postMessageToMainFrame(WebMessage message, Uri targetOrigin) { checkThread(); if (TRACE) Log.d(LOGTAG, "postMessageToMainFrame. TargetOrigin=" + targetOrigin); mProvider.postMessageToMainFrame(message, targetOrigin); } /** * Gets the WebSettings object used to control the settings for this * WebView. Loading Loading
api/current.txt +22 −0 Original line number Diff line number Diff line Loading @@ -36925,6 +36925,26 @@ package android.webkit { method public abstract void onReceivedIcon(java.lang.String, android.graphics.Bitmap); } public class WebMessage { ctor public WebMessage(java.lang.String); ctor public WebMessage(java.lang.String, android.webkit.WebMessagePort[]); method public java.lang.String getData(); method public android.webkit.WebMessagePort[] getPorts(); } public abstract class WebMessagePort { ctor public WebMessagePort(); method public abstract void close(); method public abstract void postMessage(android.webkit.WebMessage); method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback); method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback, android.os.Handler); } public static abstract class WebMessagePort.WebMessageCallback { ctor public WebMessagePort.WebMessageCallback(); method public void onMessage(android.webkit.WebMessagePort, android.webkit.WebMessage); } public abstract class WebResourceError { ctor public WebResourceError(); method public abstract java.lang.String getDescription(); Loading Loading @@ -37168,6 +37188,7 @@ package android.webkit { method public android.webkit.WebBackForwardList copyBackForwardList(); method public deprecated android.print.PrintDocumentAdapter createPrintDocumentAdapter(); method public android.print.PrintDocumentAdapter createPrintDocumentAdapter(java.lang.String); method public android.webkit.WebMessagePort[] createWebMessageChannel(); method public void destroy(); method public void documentHasImages(android.os.Message); method public static void enableSlowWholeDocumentDraw(); Loading Loading @@ -37208,6 +37229,7 @@ package android.webkit { method public boolean pageDown(boolean); method public boolean pageUp(boolean); method public void pauseTimers(); method public void postMessageToMainFrame(android.webkit.WebMessage, android.net.Uri); method public void postUrl(java.lang.String, byte[]); method public void reload(); method public void removeJavascriptInterface(java.lang.String);
api/system-current.txt +24 −0 Original line number Diff line number Diff line Loading @@ -39154,6 +39154,26 @@ package android.webkit { method public abstract void onReceivedIcon(java.lang.String, android.graphics.Bitmap); } public class WebMessage { ctor public WebMessage(java.lang.String); ctor public WebMessage(java.lang.String, android.webkit.WebMessagePort[]); method public java.lang.String getData(); method public android.webkit.WebMessagePort[] getPorts(); } public abstract class WebMessagePort { ctor public WebMessagePort(); method public abstract void close(); method public abstract void postMessage(android.webkit.WebMessage); method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback); method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback, android.os.Handler); } public static abstract class WebMessagePort.WebMessageCallback { ctor public WebMessagePort.WebMessageCallback(); method public void onMessage(android.webkit.WebMessagePort, android.webkit.WebMessage); } public abstract class WebResourceError { ctor public WebResourceError(); method public abstract java.lang.String getDescription(); Loading Loading @@ -39411,6 +39431,7 @@ package android.webkit { method public android.webkit.WebBackForwardList copyBackForwardList(); method public deprecated android.print.PrintDocumentAdapter createPrintDocumentAdapter(); method public android.print.PrintDocumentAdapter createPrintDocumentAdapter(java.lang.String); method public android.webkit.WebMessagePort[] createWebMessageChannel(); method public void destroy(); method public void documentHasImages(android.os.Message); method public static void enableSlowWholeDocumentDraw(); Loading Loading @@ -39452,6 +39473,7 @@ package android.webkit { method public boolean pageDown(boolean); method public boolean pageUp(boolean); method public void pauseTimers(); method public void postMessageToMainFrame(android.webkit.WebMessage, android.net.Uri); method public void postUrl(java.lang.String, byte[]); method public void reload(); method public void removeJavascriptInterface(java.lang.String); Loading Loading @@ -39664,6 +39686,7 @@ package android.webkit { method public abstract void clearView(); method public abstract android.webkit.WebBackForwardList copyBackForwardList(); method public abstract android.print.PrintDocumentAdapter createPrintDocumentAdapter(java.lang.String); method public abstract android.webkit.WebMessagePort[] createWebMessageChannel(); method public abstract void destroy(); method public abstract void documentHasImages(android.os.Message); method public abstract void dumpViewHierarchyWithProperties(java.io.BufferedWriter, int); Loading Loading @@ -39710,6 +39733,7 @@ package android.webkit { method public abstract boolean pageDown(boolean); method public abstract boolean pageUp(boolean); method public abstract void pauseTimers(); method public abstract void postMessageToMainFrame(android.webkit.WebMessage, android.net.Uri); method public abstract void postUrl(java.lang.String, byte[]); method public abstract void reload(); method public abstract void removeJavascriptInterface(java.lang.String);
core/java/android/webkit/WebMessage.java 0 → 100644 +62 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.webkit; /** * The Java representation of the HTML5 PostMessage event. See * https://html.spec.whatwg.org/multipage/comms.html#the-messageevent-interfaces * for definition of a MessageEvent in HTML5. * */ public class WebMessage { private String mData; private WebMessagePort[] mPorts; /** * Creates a WebMessage. * @param data the data of the message. */ public WebMessage(String data) { mData = data; } /** * Creates a WebMessage. * @param data the data of the message. * @param ports the ports that are sent with the message. */ public WebMessage(String data, WebMessagePort[] ports) { mData = data; mPorts = ports; } /** * Returns the data of the message. */ public String getData() { return mData; } /** * Returns the ports that are sent with the message, or null if no port * is sent. */ public WebMessagePort[] getPorts() { return mPorts; } }
core/java/android/webkit/WebMessagePort.java 0 → 100644 +86 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.webkit; import android.os.Handler; /** * The Java representation of the HTML5 Message Port. See * https://html.spec.whatwg.org/multipage/comms.html#messageport * for definition of MessagePort in HTML5. * * A Message port represents one endpoint of a Message Channel. In Android * webview, there is no separate Message Channel object. When a message channel * is created, both ports are tangled to each other and started, and then * returned in a MessagePort array, see {@link WebView#createWebMessageChannel} * for creating a message channel. * * When a message port is first created or received via transfer, it does not * have a WebMessageCallback to receive web messages. The messages are queued until * a WebMessageCallback is set. */ public abstract class WebMessagePort { /** * The listener for handling MessagePort events. The message callback * methods are called on the main thread. If the embedder application * wants to receive the messages on a different thread, it can do this * by passing a Handler in * {@link WebMessagePort#setWebMessageCallback(WebMessageCallback, Handler)}. * In the latter case, the application should be extra careful for thread safety * since WebMessagePort methods should be called on main thread. */ public static abstract class WebMessageCallback { /** * Message callback for receiving onMessage events. * * @param port the WebMessagePort that the message is destined for * @param message the message from the entangled port. */ public void onMessage(WebMessagePort port, WebMessage message) { } } /** * Post a WebMessage to the entangled port. * * @param message the message from Java to JS. * * @throws IllegalStateException If message port is already transferred or closed. */ public abstract void postMessage(WebMessage message); /** * Close the message port and free any resources associated with it. */ public abstract void close(); /** * Sets a callback to receive message events on the main thread. * * @param callback the message callback. */ public abstract void setWebMessageCallback(WebMessageCallback callback); /** * Sets a callback to receive message events on the handler that is provided * by the application. * * @param callback the message callback. * @param handler the handler to receive the message messages. */ public abstract void setWebMessageCallback(WebMessageCallback callback, Handler handler); }
core/java/android/webkit/WebView.java +32 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.graphics.Picture; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.net.http.SslCertificate; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Looper; Loading Loading @@ -1824,6 +1825,37 @@ public class WebView extends AbsoluteLayout mProvider.removeJavascriptInterface(name); } /** * Creates a message channel to communicate with JS and returns the message * ports that represent the endpoints of this message channel. The HTML5 message * channel functionality is described here: * https://html.spec.whatwg.org/multipage/comms.html#messagechannel * * The returned message channels are entangled and already in started state. * * @return the two message ports that form the message channel. */ public WebMessagePort[] createWebMessageChannel() { checkThread(); if (TRACE) Log.d(LOGTAG, "createWebMessageChannel"); return mProvider.createWebMessageChannel(); } /** * Post a message to main frame. The embedded application can restrict the * messages to a certain target origin. See * https://html.spec.whatwg.org/multipage/comms.html#posting-messages * for how target origin can be used. * * @param message the WebMessage * @param targetOrigin the target origin. */ public void postMessageToMainFrame(WebMessage message, Uri targetOrigin) { checkThread(); if (TRACE) Log.d(LOGTAG, "postMessageToMainFrame. TargetOrigin=" + targetOrigin); mProvider.postMessageToMainFrame(message, targetOrigin); } /** * Gets the WebSettings object used to control the settings for this * WebView. Loading