summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxesh R. Ajmera <aajmera@codeaurora.org>2015-04-21 14:16:41 -0700
committerjrizzoli <joey@cyanogenmoditalia.it>2015-08-28 13:15:46 +0200
commit1f998aee3336c5cc684290f7049d2c382fd92fed (patch)
treef9d36f24fec8bcdea3e8d7b0edfd98d9082c9af8
parentd4de616426180df2f0607c964260e22d0bb74d19 (diff)
downloadandroid_packages_apps_Gello-1f998aee3336c5cc684290f7049d2c382fd92fed.tar.gz
android_packages_apps_Gello-1f998aee3336c5cc684290f7049d2c382fd92fed.tar.bz2
android_packages_apps_Gello-1f998aee3336c5cc684290f7049d2c382fd92fed.zip
Add support for "browser:" protocol
- Prevent browser:incognito from regular tab The browser will now allow "browser:" protocol based urls and treat "chrome:" protocol based urls as a search query Change-Id: I23098f160f4bd4e5f3c4ec431364388cf4e38790
-rw-r--r--res/values/strings.xml1
-rw-r--r--src/com/android/browser/Controller.java2
-rw-r--r--src/com/android/browser/NavigationBarBase.java4
-rw-r--r--src/com/android/browser/Tab.java9
-rwxr-xr-xsrc/com/android/browser/UrlUtils.java5
-rw-r--r--src/com/android/browser/preferences/LegalPreferencesFragment.java4
6 files changed, 14 insertions, 11 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index bab0f6c1..4b2021fb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1186,7 +1186,6 @@
<string name="feedback">Feedback</string>
<string name="swe_legal">Legal information</string>
<string name="swe_open_source_licenses">Open source licenses</string>
- <string name="swe_open_source_license_url" translatable="False">chrome://credits</string>
<string name="swe_pref_legal_info_summary">Copyright (c) 2015, The Linux Foundation. All rights reserved.</string>
<string name="swe_eula">End user licenses agreement</string>
<string name="swe_eula_url" translatable="False"></string>
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index c546f485..54382d8f 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -133,7 +133,7 @@ public class Controller
private static final String LOGTAG = "Controller";
private static final String SEND_APP_ID_EXTRA =
"android.speech.extras.SEND_APPLICATION_ID_EXTRA";
- private static final String INCOGNITO_URI = "chrome://incognito";
+ public static final String INCOGNITO_URI = "browser://incognito";
public static final String EXTRA_REQUEST_CODE = "_fake_request_code_";
public static final String EXTRA_RESULT_CODE = "_fake_result_code_";
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index 7de1a5d4..8d34f137 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -97,7 +97,7 @@ public class NavigationBarBase extends LinearLayout implements
private Tab.SecurityState mSecurityState = Tab.SecurityState.SECURITY_STATE_NOT_SECURE;
private static final String noSitePrefs[] = {
- "chrome://",
+ "browser://",
"about:",
"content:",
};
@@ -523,7 +523,7 @@ public class NavigationBarBase extends LinearLayout implements
Tab t = mBaseUi.getActiveTab();
// Only shortcut javascript URIs for now, as there is special
// logic in UrlHandler for other schemas
- if (url != null && t != null && url.startsWith("javascript:")) {
+ if (url != null && t != null && url.startsWith("javascript:")) {
mUiController.loadUrl(t, url);
setDisplayTitle(text);
return;
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 36aae4c5..a600fd33 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -234,7 +234,7 @@ class Tab implements PictureListener {
PageState(Context c, boolean incognito) {
mIncognito = incognito;
if (mIncognito) {
- mOriginalUrl = mUrl = "chrome://incognito";
+ mOriginalUrl = mUrl = Controller.INCOGNITO_URI;
mTitle = c.getString(R.string.new_incognito_tab);
} else {
mOriginalUrl = mUrl = "";
@@ -607,7 +607,12 @@ class Tab implements PictureListener {
public WebResourceResponse shouldInterceptRequest(WebView view,
String url) {
//intercept if opening a new incognito tab - show the incognito welcome page
- if (url.startsWith("chrome://incognito")) {
+
+ // show only incognito content and webview has private
+ // and cannot go back(only supported if explicit from UI )
+ if (view.isPrivateBrowsingEnabled() &&
+ !view.canGoBack() &&
+ url.startsWith(Controller.INCOGNITO_URI) ) {
Resources resourceHandle = mContext.getResources();
InputStream inStream = resourceHandle.openRawResource(
com.android.browser.R.raw.incognito_mode_start_page);
diff --git a/src/com/android/browser/UrlUtils.java b/src/com/android/browser/UrlUtils.java
index 4d3dee42..e5fd17e8 100755
--- a/src/com/android/browser/UrlUtils.java
+++ b/src/com/android/browser/UrlUtils.java
@@ -47,7 +47,7 @@ public class UrlUtils {
static final Pattern ACCEPTED_URI_SCHEMA = Pattern.compile(
"(?i)" + // switch on case insensitive matching
"(" + // begin group for schema
- "(?:http|https|file|chrome):\\/\\/" +
+ "(?:http|https|file|browser):\\/\\/" +
"|(?:inline|data|about|javascript):" +
")" +
"(.*)" );
@@ -206,8 +206,7 @@ public class UrlUtils {
if (inUrl == null) {
return "";
}
- if (inUrl.startsWith("content:")
- || inUrl.startsWith("browser:")) {
+ if (inUrl.startsWith("content:")) {
return "";
}
return inUrl;
diff --git a/src/com/android/browser/preferences/LegalPreferencesFragment.java b/src/com/android/browser/preferences/LegalPreferencesFragment.java
index ce75630a..23b4163f 100644
--- a/src/com/android/browser/preferences/LegalPreferencesFragment.java
+++ b/src/com/android/browser/preferences/LegalPreferencesFragment.java
@@ -48,6 +48,7 @@ import org.codeaurora.swe.BrowserCommandLine;
public class LegalPreferencesFragment extends PreferenceFragment
implements OnPreferenceClickListener {
+ private static final String creditsUrl = "browser://credits";
PreferenceScreen mHeadPref = null;
String mEulaUrl = "";
String mPrivacyPolicyUrl = "";
@@ -101,8 +102,7 @@ public class LegalPreferencesFragment extends PreferenceFragment
Bundle b = new Bundle();
if(preference.getKey().equals(PreferenceKeys.PREF_LEGAL_CREDITS)) {
Intent i = new Intent(getActivity(), LegalPreviewActivity.class);
- i.putExtra(LegalPreviewActivity.URL_INTENT_EXTRA, getResources()
- .getString(R.string.swe_open_source_license_url));
+ i.putExtra(LegalPreviewActivity.URL_INTENT_EXTRA, creditsUrl);
startActivity(i);
return true;
} else if(preference.getKey().equals(PreferenceKeys.PREF_LEGAL_EULA)) {