Commit 61cc0481 authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

Android: Remove DEPS exception rule for AppWebMessagePort

AppWebMessagePort is the only implementation of the interface MessagePort.
Replaced the direct reference to the class with the interface and added
a public helper method |MessagePort.createPair()|. That makes
AppWebMessagePort an implementation detail, and exposes only the public
interface to embedders. Updated DEPS rules to remove the exception.

Bug: 617324
Change-Id: I3f35c2db2436bc3c82a00c07cfede1062d447d29
Reviewed-on: https://chromium-review.googlesource.com/1031690
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: default avatarBo <boliu@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554689}
parent 3b5f26b6
......@@ -5,6 +5,5 @@ include_rules = [
"-content/public/android/java",
"+content/public/android/java/src/org/chromium/content_public",
"!content/public/android/java/src/org/chromium/content/browser/AppWebMessagePort.java",
"!content/public/android/java/src/org/chromium/content/browser/selection/LGEmailActionModeWorkaround.java",
]
......@@ -10,7 +10,6 @@ import android.os.Handler;
import android.webkit.WebMessage;
import android.webkit.WebMessagePort;
import org.chromium.content.browser.AppWebMessagePort;
import org.chromium.content_public.browser.MessagePort;
/**
......@@ -66,7 +65,7 @@ public class WebMessagePortAdapter extends WebMessagePort {
public static MessagePort[] toMessagePorts(WebMessagePort[] webMessagePorts) {
if (webMessagePorts == null) return null;
MessagePort[] ports = new AppWebMessagePort[webMessagePorts.length];
MessagePort[] ports = new MessagePort[webMessagePorts.length];
for (int i = 0; i < webMessagePorts.length; i++) {
ports[i] = ((WebMessagePortAdapter) webMessagePorts[i]).getPort();
}
......
......@@ -10,7 +10,6 @@ include_rules = [
"-content/public/android/java",
"+content/public/android/java/src/org/chromium/content_public",
"!content/public/android/java/src/org/chromium/content/browser/AppWebMessagePort.java",
"!content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java",
......
......@@ -63,7 +63,6 @@ import org.chromium.blink_public.web.WebReferrerPolicy;
import org.chromium.components.autofill.AutofillProvider;
import org.chromium.components.navigation_interception.InterceptNavigationDelegate;
import org.chromium.components.navigation_interception.NavigationParams;
import org.chromium.content.browser.AppWebMessagePort;
import org.chromium.content.browser.ContentViewStatics;
import org.chromium.content_public.browser.ChildProcessImportance;
import org.chromium.content_public.browser.ContentViewCore;
......@@ -2413,10 +2412,10 @@ public class AwContents implements SmartClipProvider {
/**
* Creates a message channel and returns the ports for each end of the channel.
*/
public AppWebMessagePort[] createMessageChannel() {
public MessagePort[] createMessageChannel() {
if (TRACE) Log.i(TAG, "%s createMessageChannel", this);
if (isDestroyedOrNoOperation(WARN)) return null;
return AppWebMessagePort.createPair();
return MessagePort.createPair();
}
public boolean hasAccessedInitialDocument() {
......
......@@ -9,7 +9,6 @@ include_rules = [
"-content/public/android/java",
"+content/public/android/java/src/org/chromium/content_public",
"!content/public/android/java/src/org/chromium/content/browser/AppWebMessagePort.java",
"!content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java",
"!content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java",
"!content/public/android/java/src/org/chromium/content/common/ContentSwitches.java",
......
......@@ -22,7 +22,6 @@ include_rules = [
"!content/public/android/java/src/org/chromium/content/app/ContentChildProcessServiceDelegate.java",
"!content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibility.java",
"!content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewEmbedder.java",
"!content/public/android/java/src/org/chromium/content/browser/AppWebMessagePort.java",
"!content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java",
......
......@@ -16,7 +16,6 @@ import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.browserservices.OriginVerifier.OriginVerificationListener;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.content.browser.AppWebMessagePort;
import org.chromium.content_public.browser.MessagePort;
import org.chromium.content_public.browser.MessagePort.MessageCallback;
import org.chromium.content_public.browser.WebContents;
......@@ -31,7 +30,7 @@ public class PostMessageHandler
private WebContents mWebContents;
private boolean mMessageChannelCreated;
private boolean mBoundToService;
private AppWebMessagePort[] mChannel;
private MessagePort[] mChannel;
private Uri mPostMessageUri;
private String mPackageName;
......@@ -121,11 +120,11 @@ public class PostMessageHandler
}
private void initializeWithWebContents(final WebContents webContents) {
mChannel = (AppWebMessagePort[]) webContents.createMessageChannel();
mChannel = webContents.createMessageChannel();
mChannel[0].setMessageCallback(mMessageCallback, null);
webContents.postMessageToFrame(
null, "", mPostMessageUri.toString(), "", new AppWebMessagePort[] {mChannel[1]});
null, "", mPostMessageUri.toString(), "", new MessagePort[] {mChannel[1]});
mMessageChannelCreated = true;
if (mBoundToService) notifyMessageChannelReady(null);
......
......@@ -7,6 +7,7 @@ package org.chromium.content_public.browser;
import android.os.Handler;
import org.chromium.base.annotations.UsedByReflection;
import org.chromium.content.browser.AppWebMessagePort;
/**
* Interface for message ports that handle postMessage requests.
......@@ -25,6 +26,14 @@ public interface MessagePort {
void onMessage(String message, MessagePort[] sentPorts);
}
/**
* Called to create an entangled pair of ports.
* @return An array of a pair of{@link MessagePort} instances.
*/
public static MessagePort[] createPair() {
return AppWebMessagePort.createPair();
}
/**
* Close the port for use.
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment