Fix "Most Visited" page loading
Basically added the most visited content:// uri to a pseudo whitelist
Change-Id: I1d37ff5f593ee65994ec167b7227f3c7b205c186
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index d70b0ef..f43a68b 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -16,6 +16,7 @@
package com.android.browser;
+import com.android.browser.homepages.HomeProvider;
import com.android.common.speech.LoggingEvents;
import android.app.Activity;
@@ -50,6 +51,7 @@
import android.webkit.WebBackForwardListClient;
import android.webkit.WebChromeClient;
import android.webkit.WebHistoryItem;
+import android.webkit.WebResourceResponse;
import android.webkit.WebStorage;
import android.webkit.WebView;
import android.webkit.WebViewClient;
@@ -791,6 +793,14 @@
}
@Override
+ public WebResourceResponse shouldInterceptRequest(WebView view,
+ String url) {
+ WebResourceResponse res = HomeProvider.shouldInterceptRequest(
+ mActivity, url);
+ return res;
+ }
+
+ @Override
public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
if (!mInForeground) {
return false;
diff --git a/src/com/android/browser/homepages/HomeProvider.java b/src/com/android/browser/homepages/HomeProvider.java
index 5c368eb..98fcfbe 100644
--- a/src/com/android/browser/homepages/HomeProvider.java
+++ b/src/com/android/browser/homepages/HomeProvider.java
@@ -16,15 +16,20 @@
*/
package com.android.browser.homepages;
+import com.android.browser.BrowserSettings;
+
import android.content.ContentProvider;
import android.content.ContentValues;
+import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
import android.util.Log;
+import android.webkit.WebResourceResponse;
import java.io.IOException;
+import java.io.InputStream;
public class HomeProvider extends ContentProvider {
@@ -78,4 +83,20 @@
}
}
+ public static WebResourceResponse shouldInterceptRequest(Context context,
+ String url) {
+ try {
+ boolean useMostVisited = BrowserSettings.getInstance().useMostVisitedHomepage();
+ if (useMostVisited && url.startsWith("content://")) {
+ Uri uri = Uri.parse(url);
+ if (AUTHORITY.equals(uri.getAuthority())) {
+ InputStream ins = context.getContentResolver()
+ .openInputStream(uri);
+ return new WebResourceResponse("text/html", "utf-8", ins);
+ }
+ }
+ } catch (Exception e) {}
+ return null;
+ }
+
}