diff options
Diffstat (limited to 'android_webview/java')
3 files changed, 62 insertions, 0 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java index 377e568..b7995fd 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java @@ -75,6 +75,18 @@ public class AwContents { // Called on the IO thread. @Override + public boolean shouldBlockContentUrls() { + return !AwContents.this.mSettings.getAllowContentAccess(); + } + + // Called on the IO thread. + @Override + public boolean shouldBlockFileUrls() { + return !AwContents.this.mSettings.getAllowFileAccess(); + } + + // Called on the IO thread. + @Override public boolean shouldBlockNetworkLoads() { return AwContents.this.mSettings.getBlockNetworkLoads(); } diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentsIoThreadClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentsIoThreadClient.java index a81c06b..b656a05 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContentsIoThreadClient.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContentsIoThreadClient.java @@ -22,5 +22,13 @@ public interface AwContentsIoThreadClient { // Called on the IO thread. @CalledByNative + public boolean shouldBlockContentUrls(); + + // Called on the IO thread. + @CalledByNative + public boolean shouldBlockFileUrls(); + + // Called on the IO thread. + @CalledByNative public boolean shouldBlockNetworkLoads(); } diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java index a6d2e17..8b5ca99 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java @@ -21,6 +21,8 @@ public class AwSettings { private final Context mContext; private boolean mBlockNetworkLoads; // Default depends on permission of embedding APK. + private boolean mAllowContentUrlAccess = true; + private boolean mAllowFileUrlAccess = true; public AwSettings(Context context) { mContext = context; @@ -54,4 +56,44 @@ public class AwSettings { return mBlockNetworkLoads; } } + + /** + * See {@link android.webkit.WebSettings#setAllowFileAccess}. + */ + public void setAllowFileAccess(boolean allow) { + synchronized (mAwSettingsLock) { + if (mAllowFileUrlAccess != allow) { + mAllowFileUrlAccess = allow; + } + } + } + + /** + * See {@link android.webkit.WebSettings#getAllowFileAccess}. + */ + public boolean getAllowFileAccess() { + synchronized (mAwSettingsLock) { + return mAllowFileUrlAccess; + } + } + + /** + * See {@link android.webkit.WebSettings#setAllowContentAccess}. + */ + public void setAllowContentAccess(boolean allow) { + synchronized (mAwSettingsLock) { + if (mAllowContentUrlAccess != allow) { + mAllowContentUrlAccess = allow; + } + } + } + + /** + * See {@link android.webkit.WebSettings#getAllowContentAccess}. + */ + public boolean getAllowContentAccess() { + synchronized (mAwSettingsLock) { + return mAllowContentUrlAccess; + } + } } |