Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1292)

Unified Diff: android_webview/java/src/org/chromium/android_webview/AwContentsClient.java

Issue 11187032: Handle resubmission of HTTP Posts. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
+ }
+ 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;
}
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,

Powered by Google App Engine
This is Rietveld 408576698