Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1737edc authored by Patrick Scott's avatar Patrick Scott
Browse files

Do not merge.

Cherry picked:

Add an api to toggle content url access.

By default, WebView allows access to content providers on the system.  This
setting allows applications to turn off content urls.

Bug: 1196879
Change-Id: I49eaea6d7b9ccc3b3a4443d712222556087568c0
parent 31d9d895
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -232537,6 +232537,17 @@
 visibility="public"
>
</method>
<method name="getAllowContentAccess"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getAllowFileAccess"
 return="boolean"
 abstract="false"
@@ -232955,6 +232966,19 @@
 visibility="public"
>
</method>
<method name="setAllowContentAccess"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="allow" type="boolean">
</parameter>
</method>
<method name="setAllowFileAccess"
 return="void"
 abstract="false"
+2 −1
Original line number Diff line number Diff line
@@ -738,7 +738,8 @@ class BrowserFrame extends Handler {
            }

        // content://
        } else if (url.startsWith(ANDROID_CONTENT)) {
        } else if (mSettings.getAllowContentAccess() &&
                   url.startsWith(ANDROID_CONTENT)) {
            try {
                // Strip off mimetype, for compatibility with ContentLoader.java
                // If we don't do this, we can fail to load Gmail attachments,
+2 −1
Original line number Diff line number Diff line
@@ -203,7 +203,8 @@ class FrameLoader {
                                settings.getAllowFileAccess())).sendToTarget();
            }
            return true;
        } else if (URLUtil.isContentUrl(url)) {
        } else if (settings.getAllowContentAccess() &&
                   URLUtil.isContentUrl(url)) {
            // Send the raw url to the ContentLoader because it will do a
            // permission check and the url has to match.
            if (loadListener.isSynchronous()) {
+20 −1
Original line number Diff line number Diff line
@@ -215,6 +215,7 @@ public class WebSettings {
    private boolean         mBuiltInZoomControls = false;
    private boolean         mDisplayZoomControls = true;
    private boolean         mAllowFileAccess = true;
    private boolean         mAllowContentAccess = true;
    private boolean         mLoadWithOverviewMode = false;
    private boolean         mEnableSmoothTransition = false;

@@ -587,7 +588,9 @@ public class WebSettings {

    /**
     * Enable or disable file access within WebView. File access is enabled by
     * default.
     * default.  Note that this enables or disables file system access only.
     * Assets and resources are still accessible using file:///android_asset and
     * file:///android_res.
     */
    public void setAllowFileAccess(boolean allow) {
        mAllowFileAccess = allow;
@@ -600,6 +603,22 @@ public class WebSettings {
        return mAllowFileAccess;
    }

    /**
     * Enable or disable content url access within WebView.  Content url access
     * allows WebView to load content from a content provider installed in the
     * system.  The default is enabled.
     */
    public void setAllowContentAccess(boolean allow) {
        mAllowContentAccess = allow;
    }

    /**
     * Returns true if this WebView supports content url access.
     */
    public boolean getAllowContentAccess() {
        return mAllowContentAccess;
    }

    /**
     * Set whether the WebView loads a page with overview mode.
     */