OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.android_webview; | 5 package org.chromium.android_webview; |
6 | 6 |
7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
8 import android.annotation.TargetApi; | 8 import android.annotation.TargetApi; |
9 import android.app.Activity; | 9 import android.app.Activity; |
10 import android.content.ComponentCallbacks2; | 10 import android.content.ComponentCallbacks2; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 import org.chromium.base.Log; | 49 import org.chromium.base.Log; |
50 import org.chromium.base.ObserverList; | 50 import org.chromium.base.ObserverList; |
51 import org.chromium.base.ThreadUtils; | 51 import org.chromium.base.ThreadUtils; |
52 import org.chromium.base.TraceEvent; | 52 import org.chromium.base.TraceEvent; |
53 import org.chromium.base.VisibleForTesting; | 53 import org.chromium.base.VisibleForTesting; |
54 import org.chromium.base.annotations.CalledByNative; | 54 import org.chromium.base.annotations.CalledByNative; |
55 import org.chromium.base.annotations.JNINamespace; | 55 import org.chromium.base.annotations.JNINamespace; |
56 import org.chromium.base.annotations.SuppressFBWarnings; | 56 import org.chromium.base.annotations.SuppressFBWarnings; |
57 import org.chromium.components.navigation_interception.InterceptNavigationDelega
te; | 57 import org.chromium.components.navigation_interception.InterceptNavigationDelega
te; |
58 import org.chromium.components.navigation_interception.NavigationParams; | 58 import org.chromium.components.navigation_interception.NavigationParams; |
| 59 import org.chromium.content.browser.AppWebMessagePort; |
| 60 import org.chromium.content.browser.AppWebMessagePortService; |
59 import org.chromium.content.browser.ContentViewClient; | 61 import org.chromium.content.browser.ContentViewClient; |
60 import org.chromium.content.browser.ContentViewCore; | 62 import org.chromium.content.browser.ContentViewCore; |
61 import org.chromium.content.browser.ContentViewStatics; | 63 import org.chromium.content.browser.ContentViewStatics; |
| 64 import org.chromium.content.browser.PostMessageSender; |
62 import org.chromium.content.browser.SmartClipProvider; | 65 import org.chromium.content.browser.SmartClipProvider; |
63 import org.chromium.content_public.browser.GestureStateListener; | 66 import org.chromium.content_public.browser.GestureStateListener; |
64 import org.chromium.content_public.browser.JavaScriptCallback; | 67 import org.chromium.content_public.browser.JavaScriptCallback; |
65 import org.chromium.content_public.browser.LoadUrlParams; | 68 import org.chromium.content_public.browser.LoadUrlParams; |
66 import org.chromium.content_public.browser.NavigationController; | 69 import org.chromium.content_public.browser.NavigationController; |
67 import org.chromium.content_public.browser.NavigationHistory; | 70 import org.chromium.content_public.browser.NavigationHistory; |
68 import org.chromium.content_public.browser.WebContents; | 71 import org.chromium.content_public.browser.WebContents; |
69 import org.chromium.content_public.browser.navigation_controller.LoadURLType; | 72 import org.chromium.content_public.browser.navigation_controller.LoadURLType; |
70 import org.chromium.content_public.browser.navigation_controller.UserAgentOverri
deOption; | 73 import org.chromium.content_public.browser.navigation_controller.UserAgentOverri
deOption; |
71 import org.chromium.content_public.common.Referrer; | 74 import org.chromium.content_public.common.Referrer; |
(...skipping 2161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2233 /** | 2236 /** |
2234 * Post a message to a frame. | 2237 * Post a message to a frame. |
2235 * | 2238 * |
2236 * @param frameName The name of the frame. If the name is null the message i
s posted | 2239 * @param frameName The name of the frame. If the name is null the message i
s posted |
2237 * to the main frame. | 2240 * to the main frame. |
2238 * @param message The message | 2241 * @param message The message |
2239 * @param targetOrigin The target origin | 2242 * @param targetOrigin The target origin |
2240 * @param sentPorts The sent message ports, if any. Pass null if there is no | 2243 * @param sentPorts The sent message ports, if any. Pass null if there is no |
2241 * message ports to pass. | 2244 * message ports to pass. |
2242 */ | 2245 */ |
2243 public void postMessageToFrame(String frameName, String message, String targ
etOrigin, | 2246 public void postMessageToFrame( |
2244 AwMessagePort[] sentPorts) { | 2247 String frameName, String message, String targetOrigin, AppWebMessage
Port[] sentPorts) { |
2245 if (isDestroyed(WARN)) return; | 2248 if (isDestroyed(WARN)) return; |
2246 if (mPostMessageSender == null) { | 2249 if (mPostMessageSender == null) { |
2247 AwMessagePortService service = mBrowserContext.getMessagePortService
(); | 2250 AppWebMessagePortService service = mBrowserContext.getMessagePortSer
vice(); |
2248 mPostMessageSender = new PostMessageSender(this, service); | 2251 mPostMessageSender = new PostMessageSender(this, service); |
2249 service.addObserver(mPostMessageSender); | 2252 service.addObserver(mPostMessageSender); |
2250 } | 2253 } |
2251 mPostMessageSender.postMessage(frameName, message, targetOrigin, | 2254 mPostMessageSender.postMessage(frameName, message, targetOrigin, |
2252 sentPorts); | 2255 sentPorts); |
2253 } | 2256 } |
2254 | 2257 |
2255 // Implements PostMessageSender.PostMessageSenderDelegate interface method. | 2258 // Implements PostMessageSender.PostMessageSenderDelegate interface method. |
2256 @Override | 2259 @Override |
2257 public boolean isPostMessageSenderReady() { | 2260 public boolean isPostMessageSenderReady() { |
(...skipping 10 matching lines...) Expand all Loading... |
2268 int[] sentPortIds) { | 2271 int[] sentPortIds) { |
2269 if (TRACE) Log.i(TAG, "%s postMessageToWeb. TargetOrigin=%s", this, targ
etOrigin); | 2272 if (TRACE) Log.i(TAG, "%s postMessageToWeb. TargetOrigin=%s", this, targ
etOrigin); |
2270 if (isDestroyed(NO_WARN)) return; | 2273 if (isDestroyed(NO_WARN)) return; |
2271 nativePostMessageToFrame(mNativeAwContents, frameName, message, targetOr
igin, | 2274 nativePostMessageToFrame(mNativeAwContents, frameName, message, targetOr
igin, |
2272 sentPortIds); | 2275 sentPortIds); |
2273 } | 2276 } |
2274 | 2277 |
2275 /** | 2278 /** |
2276 * Creates a message channel and returns the ports for each end of the chann
el. | 2279 * Creates a message channel and returns the ports for each end of the chann
el. |
2277 */ | 2280 */ |
2278 public AwMessagePort[] createMessageChannel() { | 2281 public AppWebMessagePort[] createMessageChannel() { |
2279 if (TRACE) Log.i(TAG, "%s createMessageChannel", this); | 2282 if (TRACE) Log.i(TAG, "%s createMessageChannel", this); |
2280 if (isDestroyed(WARN)) return null; | 2283 if (isDestroyed(WARN)) return null; |
2281 AwMessagePort[] ports = mBrowserContext.getMessagePortService().createMe
ssageChannel(); | 2284 AppWebMessagePort[] ports = mBrowserContext.getMessagePortService().crea
teMessageChannel(); |
2282 nativeCreateMessageChannel(mNativeAwContents, ports); | 2285 nativeCreateMessageChannel(mNativeAwContents, ports); |
2283 return ports; | 2286 return ports; |
2284 } | 2287 } |
2285 | 2288 |
2286 public boolean hasAccessedInitialDocument() { | 2289 public boolean hasAccessedInitialDocument() { |
2287 if (isDestroyed(NO_WARN)) return false; | 2290 if (isDestroyed(NO_WARN)) return false; |
2288 return mWebContents.hasAccessedInitialDocument(); | 2291 return mWebContents.hasAccessedInitialDocument(); |
2289 } | 2292 } |
2290 | 2293 |
2291 @TargetApi(Build.VERSION_CODES.M) | 2294 @TargetApi(Build.VERSION_CODES.M) |
(...skipping 1074 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3366 private native void nativeTrimMemory(long nativeAwContents, int level, boole
an visible); | 3369 private native void nativeTrimMemory(long nativeAwContents, int level, boole
an visible); |
3367 | 3370 |
3368 private native void nativeCreatePdfExporter(long nativeAwContents, AwPdfExpo
rter awPdfExporter); | 3371 private native void nativeCreatePdfExporter(long nativeAwContents, AwPdfExpo
rter awPdfExporter); |
3369 | 3372 |
3370 private native void nativePreauthorizePermission(long nativeAwContents, Stri
ng origin, | 3373 private native void nativePreauthorizePermission(long nativeAwContents, Stri
ng origin, |
3371 long resources); | 3374 long resources); |
3372 | 3375 |
3373 private native void nativePostMessageToFrame(long nativeAwContents, String f
rameId, | 3376 private native void nativePostMessageToFrame(long nativeAwContents, String f
rameId, |
3374 String message, String targetOrigin, int[] msgPorts); | 3377 String message, String targetOrigin, int[] msgPorts); |
3375 | 3378 |
3376 private native void nativeCreateMessageChannel(long nativeAwContents, AwMess
agePort[] ports); | 3379 private native void nativeCreateMessageChannel( |
| 3380 long nativeAwContents, AppWebMessagePort[] ports); |
3377 | 3381 |
3378 private native void nativeGrantFileSchemeAccesstoChildProcess(long nativeAwC
ontents); | 3382 private native void nativeGrantFileSchemeAccesstoChildProcess(long nativeAwC
ontents); |
3379 private native void nativeResumeLoadingCreatedPopupWebContents(long nativeAw
Contents); | 3383 private native void nativeResumeLoadingCreatedPopupWebContents(long nativeAw
Contents); |
3380 } | 3384 } |
OLD | NEW |