diff options
author | Axesh R. Ajmera <aajmera@codeaurora.org> | 2015-04-21 14:16:41 -0700 |
---|---|---|
committer | jrizzoli <joey@cyanogenmoditalia.it> | 2015-08-28 13:15:46 +0200 |
commit | 1f998aee3336c5cc684290f7049d2c382fd92fed (patch) | |
tree | f9d36f24fec8bcdea3e8d7b0edfd98d9082c9af8 | |
parent | d4de616426180df2f0607c964260e22d0bb74d19 (diff) | |
download | android_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.xml | 1 | ||||
-rw-r--r-- | src/com/android/browser/Controller.java | 2 | ||||
-rw-r--r-- | src/com/android/browser/NavigationBarBase.java | 4 | ||||
-rw-r--r-- | src/com/android/browser/Tab.java | 9 | ||||
-rwxr-xr-x | src/com/android/browser/UrlUtils.java | 5 | ||||
-rw-r--r-- | src/com/android/browser/preferences/LegalPreferencesFragment.java | 4 |
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)) { |