Chromium Code Reviews| Index: android_webview/java/src/org/chromium/android_webview/AwContentsClient.java |
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java |
| index f64604027c7b16c37ff37dfa6e424eac2d3899d5..db4318311817573c05a938d007f26c1a2570aa20 100644 |
| --- a/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java |
| +++ b/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java |
| @@ -6,6 +6,9 @@ package org.chromium.android_webview; |
| import android.graphics.Rect; |
| import android.graphics.RectF; |
| +import android.os.Handler; |
| +import android.os.Looper; |
| +import android.os.Message; |
| import android.util.Log; |
| import android.view.KeyEvent; |
| import android.webkit.ConsoleMessage; |
| @@ -31,12 +34,39 @@ public abstract class AwContentsClient extends ContentViewClient { |
| new WebContentsDelegateAdapter(); |
| private AwWebContentsObserver mWebContentsObserver; |
| + // The content core. |
| + private ContentViewCore mContentViewCore; |
| //-------------------------------------------------------------------------------------------- |
| // Adapter for WebContentsDelegate methods. |
| //-------------------------------------------------------------------------------------------- |
| class WebContentsDelegateAdapter extends AwWebContentsDelegate { |
| + |
| + // The message ids. |
| + public final static int CONTINUE_PENDING_RELOAD = 1; |
| + public final static int CANCEL_PENDING_RELOAD = 2; |
| + |
| + // Handler associated with this adapter. |
| + private final Handler mHandler = new Handler(Looper.getMainLooper()) { |
| + |
| + @Override |
| + public void handleMessage(Message msg) { |
| + switch (msg.what) { |
| + case CONTINUE_PENDING_RELOAD: |
| + if (mContentViewCore != null) { |
| + mContentViewCore.continuePendingReload(); |
| + } |
| + break; |
| + case CANCEL_PENDING_RELOAD: |
| + if (mContentViewCore != null) { |
| + mContentViewCore.cancelPendingReload(); |
|
mkosiba (inactive)
2012/10/18 09:26:42
why do these need to go through contentViewCore? s
|
| + } |
| + break; |
| + } |
| + } |
| + }; |
| + |
| @Override |
| public void onLoadProgressChanged(int progress) { |
| AwContentsClient.this.onProgressChanged(progress); |
| @@ -99,6 +129,13 @@ public abstract class AwContentsClient extends ContentViewClient { |
| public void onUrlStarredChanged(boolean starred) { |
| // TODO: implement |
| } |
| + |
| + @Override |
| + public void showRepostFormWarningDialog() { |
| + Message dontResend = mHandler.obtainMessage(CANCEL_PENDING_RELOAD); |
| + Message resend = mHandler.obtainMessage(CONTINUE_PENDING_RELOAD); |
| + AwContentsClient.this.onFormResubmission(dontResend, resend); |
| + } |
| } |
| class AwWebContentsObserver extends WebContentsObserverAndroid { |
| @@ -124,9 +161,10 @@ public abstract class AwContentsClient extends ContentViewClient { |
| } |
| } |
| - void installWebContentsObserver(ContentViewCore contentViewCore) { |
| + void setContentViewCore(ContentViewCore contentViewCore) { |
| assert mWebContentsObserver == null; |
| mWebContentsObserver = new AwWebContentsObserver(contentViewCore); |
| + mContentViewCore = contentViewCore; |
|
mkosiba (inactive)
2012/10/18 09:26:42
I don't feel comfortable with the proliferation of
sgurun-gerrit only
2012/10/22 23:42:27
Done.
|
| } |
| final AwWebContentsDelegate getWebContentsDelegate() { |
| @@ -151,6 +189,8 @@ public abstract class AwContentsClient extends ContentViewClient { |
| public abstract void onReceivedHttpAuthRequest(AwHttpAuthHandler handler, |
| String host, String realm); |
| + public abstract void onFormResubmission(Message dontResend, Message resend); |
| + |
| protected abstract void handleJsAlert(String url, String message, JsResultReceiver receiver); |
| protected abstract void handleJsBeforeUnload(String url, String message, |