Adds the ability to set Geolocation permissions from DumpRenderTree on Android.

This commit is contained in:
Steve Block
2009-08-19 18:46:34 +01:00
parent 77035a31dd
commit dad347c8b8
3 changed files with 37 additions and 0 deletions

View File

@@ -61,6 +61,7 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon
private static final int LAYOUT_WAIT_UNTIL_DONE = 40;
private static final int LAYOUT_DUMP_DATABASE_CALLBACKS = 41;
private static final int LAYOUT_SET_CAN_OPEN_WINDOWS = 42;
private static final int SET_GEOLOCATION_PERMISSION = 43;
CallbackProxy(EventSender eventSender,
LayoutTestController layoutTestController) {
@@ -202,6 +203,11 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon
case LAYOUT_SET_CAN_OPEN_WINDOWS:
mLayoutTestController.setCanOpenWindows();
break;
case SET_GEOLOCATION_PERMISSION:
mLayoutTestController.setGeolocationPermission(
msg.arg1 == 1 ? true : false);
break;
}
}
@@ -364,4 +370,8 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon
public void setMockGeolocationError(int code, String message) {
MockGeolocation.getInstance().setError(code, message);
}
public void setGeolocationPermission(boolean allow) {
obtainMessage(SET_GEOLOCATION_PERMISSION, allow ? 1 : 0, 0).sendToTarget();
}
}

View File

@@ -62,4 +62,7 @@ public interface LayoutTestController {
// For storage tests
public void dumpDatabaseCallbacks();
public void setCanOpenWindows();
// For Geolocation tests
public void setGeolocationPermission(boolean allow);
}

View File

@@ -28,6 +28,7 @@ import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.ViewGroup;
import android.webkit.GeolocationPermissions;
import android.webkit.HttpAuthHandler;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
@@ -425,6 +426,14 @@ public class TestShellActivity extends Activity implements LayoutTestController
mCanOpenWindows = true;
}
/**
* Sets the Geolocation permission state to be used for all future requests.
*/
public void setGeolocationPermission(boolean allow) {
mGeolocationPermissionSet = true;
mGeolocationPermission = allow;
}
private final WebViewClient mViewClient = new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
@@ -575,6 +584,18 @@ public class TestShellActivity extends Activity implements LayoutTestController
callback.updateQuota(currentQuota + 1024 * 1024 * 5);
}
/**
* Instructs the client to show a prompt to ask the user to set the
* Geolocation permission state for the specified origin.
*/
@Override
public void onGeolocationPermissionsShowPrompt(String origin,
GeolocationPermissions.Callback callback) {
if (mGeolocationPermissionSet) {
callback.invoke(origin, mGeolocationPermission, false);
}
}
@Override
public void addMessageToConsole(String message, int lineNumber,
String sourceID) {
@@ -687,4 +708,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
static final String RESULT_FILE = "ResultFile";
static final String TIMEOUT_IN_MILLIS = "TimeoutInMillis";
static final String UI_AUTO_TEST = "UiAutoTest";
private boolean mGeolocationPermissionSet;
private boolean mGeolocationPermission;
}