| Index: components/web_restrictions/browser/javatest/src/org/chromium/components/webrestrictions/WebRestrictionsClient.java
|
| diff --git a/components/web_restrictions/browser/javatest/src/org/chromium/components/webrestrictions/WebRestrictionsClient.java b/components/web_restrictions/browser/javatest/src/org/chromium/components/webrestrictions/WebRestrictionsClient.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e955d539cb9141a4e4e718115833fe2b5b6d7c34
|
| --- /dev/null
|
| +++ b/components/web_restrictions/browser/javatest/src/org/chromium/components/webrestrictions/WebRestrictionsClient.java
|
| @@ -0,0 +1,92 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.components.webrestrictions;
|
| +
|
| +import org.chromium.base.annotations.CalledByNative;
|
| +import org.chromium.base.annotations.JNINamespace;
|
| +
|
| +/**
|
| + * This is a dummy version of the real WebRestrictionsClient, to allow unit testing of the C++
|
| + * code.
|
| + */
|
| +@JNINamespace("web_restrictions")
|
| +public class WebRestrictionsClient {
|
| + private class ShouldProceedResult {
|
| + private final boolean mShouldProceed;
|
| + private final String mErrorPage;
|
| +
|
| + ShouldProceedResult(boolean shouldProceed, String errorPage) {
|
| + mShouldProceed = shouldProceed;
|
| + mErrorPage = errorPage;
|
| + }
|
| +
|
| + @CalledByNative("ShouldProceedResult")
|
| + boolean shouldProceed() {
|
| + return mShouldProceed;
|
| + }
|
| +
|
| + @CalledByNative("ShouldProceedResult")
|
| + String getErrorPage() {
|
| + return mErrorPage;
|
| + }
|
| + }
|
| +
|
| + private String mAuthority;
|
| +
|
| + /**
|
| + * Start the web restriction provider and setup the content resolver.
|
| + */
|
| + WebRestrictionsClient() {}
|
| +
|
| + void init(String authority, final long nativeProvider) {
|
| + mAuthority = authority;
|
| + }
|
| +
|
| + /**
|
| + * Simple helper method to expose the constructor over JNI.
|
| + */
|
| + @CalledByNative
|
| + private static WebRestrictionsClient create(String authority, long nativeProvider) {
|
| + WebRestrictionsClient client = new WebRestrictionsClient();
|
| + client.init(authority, nativeProvider);
|
| + return client;
|
| + }
|
| +
|
| + /**
|
| + * @return whether the web restriction provider supports requesting access for a blocked url.
|
| + */
|
| + @CalledByNative
|
| + boolean supportsRequest() {
|
| + return mAuthority.contains("Good");
|
| + }
|
| +
|
| + /**
|
| + * Called when the ContentResolverWebRestrictionsProvider is about to be destroyed.
|
| + */
|
| + @CalledByNative
|
| + private void onDestroy() {}
|
| +
|
| + /**
|
| + * Whether we can proceed with loading the {@code url}.
|
| + * In case the url is not to be loaded, the web restriction provider can return an optional
|
| + * error page to show instead.
|
| + */
|
| + @CalledByNative
|
| + ShouldProceedResult shouldProceed(final String url) {
|
| + return new ShouldProceedResult(mAuthority.contains("Good"), url);
|
| + }
|
| +
|
| + /**
|
| + * Request permission to load the {@code url}.
|
| + * The web restriction provider returns a {@code boolean} variable indicating whether it was
|
| + * able to forward the request to the appropriate authority who can approve it.
|
| + */
|
| + @CalledByNative
|
| + boolean requestPermission(final String url) {
|
| + return mAuthority.contains("Good");
|
| + }
|
| +
|
| + native void nativeNotifyWebRestrictionsChanged(long ptrProvider);
|
| +}
|
|
|