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 = [ ...@@ -5,6 +5,5 @@ include_rules = [
"-content/public/android/java", "-content/public/android/java",
"+content/public/android/java/src/org/chromium/content_public", "+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", "!content/public/android/java/src/org/chromium/content/browser/selection/LGEmailActionModeWorkaround.java",
] ]
...@@ -10,7 +10,6 @@ import android.os.Handler; ...@@ -10,7 +10,6 @@ import android.os.Handler;
import android.webkit.WebMessage; import android.webkit.WebMessage;
import android.webkit.WebMessagePort; import android.webkit.WebMessagePort;
import org.chromium.content.browser.AppWebMessagePort;
import org.chromium.content_public.browser.MessagePort; import org.chromium.content_public.browser.MessagePort;
/** /**
...@@ -66,7 +65,7 @@ public class WebMessagePortAdapter extends WebMessagePort { ...@@ -66,7 +65,7 @@ public class WebMessagePortAdapter extends WebMessagePort {
public static MessagePort[] toMessagePorts(WebMessagePort[] webMessagePorts) { public static MessagePort[] toMessagePorts(WebMessagePort[] webMessagePorts) {
if (webMessagePorts == null) return null; 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++) { for (int i = 0; i < webMessagePorts.length; i++) {
ports[i] = ((WebMessagePortAdapter) webMessagePorts[i]).getPort(); ports[i] = ((WebMessagePortAdapter) webMessagePorts[i]).getPort();
} }
......
...@@ -10,7 +10,6 @@ include_rules = [ ...@@ -10,7 +10,6 @@ include_rules = [
"-content/public/android/java", "-content/public/android/java",
"+content/public/android/java/src/org/chromium/content_public", "+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/BrowserStartupController.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java", "!content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java", "!content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java",
......
...@@ -63,7 +63,6 @@ import org.chromium.blink_public.web.WebReferrerPolicy; ...@@ -63,7 +63,6 @@ import org.chromium.blink_public.web.WebReferrerPolicy;
import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProvider;
import org.chromium.components.navigation_interception.InterceptNavigationDelegate; import org.chromium.components.navigation_interception.InterceptNavigationDelegate;
import org.chromium.components.navigation_interception.NavigationParams; import org.chromium.components.navigation_interception.NavigationParams;
import org.chromium.content.browser.AppWebMessagePort;
import org.chromium.content.browser.ContentViewStatics; import org.chromium.content.browser.ContentViewStatics;
import org.chromium.content_public.browser.ChildProcessImportance; import org.chromium.content_public.browser.ChildProcessImportance;
import org.chromium.content_public.browser.ContentViewCore; import org.chromium.content_public.browser.ContentViewCore;
...@@ -2413,10 +2412,10 @@ public class AwContents implements SmartClipProvider { ...@@ -2413,10 +2412,10 @@ public class AwContents implements SmartClipProvider {
/** /**
* Creates a message channel and returns the ports for each end of the channel. * 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 (TRACE) Log.i(TAG, "%s createMessageChannel", this);
if (isDestroyedOrNoOperation(WARN)) return null; if (isDestroyedOrNoOperation(WARN)) return null;
return AppWebMessagePort.createPair(); return MessagePort.createPair();
} }
public boolean hasAccessedInitialDocument() { public boolean hasAccessedInitialDocument() {
......
...@@ -9,7 +9,6 @@ include_rules = [ ...@@ -9,7 +9,6 @@ include_rules = [
"-content/public/android/java", "-content/public/android/java",
"+content/public/android/java/src/org/chromium/content_public", "+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/ContentVideoView.java",
"!content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java", "!content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java",
"!content/public/android/java/src/org/chromium/content/common/ContentSwitches.java", "!content/public/android/java/src/org/chromium/content/common/ContentSwitches.java",
......
...@@ -22,7 +22,6 @@ include_rules = [ ...@@ -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/app/ContentChildProcessServiceDelegate.java",
"!content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibility.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/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/BrowserStartupController.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java", "!content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java", "!content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java",
......
...@@ -16,7 +16,6 @@ import org.chromium.base.ThreadUtils; ...@@ -16,7 +16,6 @@ import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.browserservices.OriginVerifier.OriginVerificationListener; import org.chromium.chrome.browser.browserservices.OriginVerifier.OriginVerificationListener;
import org.chromium.chrome.browser.tab.Tab; 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;
import org.chromium.content_public.browser.MessagePort.MessageCallback; import org.chromium.content_public.browser.MessagePort.MessageCallback;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
...@@ -31,7 +30,7 @@ public class PostMessageHandler ...@@ -31,7 +30,7 @@ public class PostMessageHandler
private WebContents mWebContents; private WebContents mWebContents;
private boolean mMessageChannelCreated; private boolean mMessageChannelCreated;
private boolean mBoundToService; private boolean mBoundToService;
private AppWebMessagePort[] mChannel; private MessagePort[] mChannel;
private Uri mPostMessageUri; private Uri mPostMessageUri;
private String mPackageName; private String mPackageName;
...@@ -121,11 +120,11 @@ public class PostMessageHandler ...@@ -121,11 +120,11 @@ public class PostMessageHandler
} }
private void initializeWithWebContents(final WebContents webContents) { private void initializeWithWebContents(final WebContents webContents) {
mChannel = (AppWebMessagePort[]) webContents.createMessageChannel(); mChannel = webContents.createMessageChannel();
mChannel[0].setMessageCallback(mMessageCallback, null); mChannel[0].setMessageCallback(mMessageCallback, null);
webContents.postMessageToFrame( webContents.postMessageToFrame(
null, "", mPostMessageUri.toString(), "", new AppWebMessagePort[] {mChannel[1]}); null, "", mPostMessageUri.toString(), "", new MessagePort[] {mChannel[1]});
mMessageChannelCreated = true; mMessageChannelCreated = true;
if (mBoundToService) notifyMessageChannelReady(null); if (mBoundToService) notifyMessageChannelReady(null);
......
...@@ -7,6 +7,7 @@ package org.chromium.content_public.browser; ...@@ -7,6 +7,7 @@ package org.chromium.content_public.browser;
import android.os.Handler; import android.os.Handler;
import org.chromium.base.annotations.UsedByReflection; import org.chromium.base.annotations.UsedByReflection;
import org.chromium.content.browser.AppWebMessagePort;
/** /**
* Interface for message ports that handle postMessage requests. * Interface for message ports that handle postMessage requests.
...@@ -25,6 +26,14 @@ public interface MessagePort { ...@@ -25,6 +26,14 @@ public interface MessagePort {
void onMessage(String message, MessagePort[] sentPorts); 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. * 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