DivestOS/Patches/Copperhead-13.0/android_packages_apps_Browser/7.patch
2016-12-21 19:30:02 -05:00

204 lines
8.0 KiB
Diff

From 664f95d59cc672fb8b8ea3068a92530b08114f95 Mon Sep 17 00:00:00 2001
From: Daniel Micay <danielmicay@gmail.com>
Date: Tue, 7 Apr 2015 03:23:22 -0400
Subject: [PATCH] remove RLZ tracking
---
AndroidManifest.xml | 8 --
res/values/strings.xml | 3 -
src/com/android/browser/UrlHandler.java | 129 --------------------------------
3 files changed, 140 deletions(-)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0ffdec4..7152192 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -239,14 +239,6 @@
<!-- Makes .BrowserActivity the search target for any activity in Browser -->
<meta-data android:name="android.app.default_searchable" android:value=".BrowserActivity" />
- <!-- Application code for RLZ tracking. RLZ assigns non-unique, non-personally identifiable
- tracking labels to client products; these labels sometimes appear in Google search
- queries. See http://code.google.com/p/rlz for more info.
-
- This value signifies to the RLZ client that this application uses RLZ tracking. -->
- <meta-data android:name="com.google.android.partnersetup.RLZ_ACCESS_POINT"
- android:value="@string/rlz_access_point" />
-
<receiver android:name=".OpenDownloadReceiver">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED"/>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9012511..d9023ec 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -875,9 +875,6 @@
<!-- The folder name for the special "Other Bookmarks" folder created by Chrome [CHAR LIMIT=24] -->
<string name="other_bookmarks">Other Bookmarks</string>
- <!-- Access point for RLZ tracking. -->
- <string name="rlz_access_point">Y1</string>
-
<!-- Title for a dialog asking the user which account to sync their bookmarks to [CHAR LIMIT=32] -->
<string name="account_chooser_dialog_title" msgid="4833571985009544332">Choose account</string>
diff --git a/src/com/android/browser/UrlHandler.java b/src/com/android/browser/UrlHandler.java
index 084a479..52919c8 100644
--- a/src/com/android/browser/UrlHandler.java
+++ b/src/com/android/browser/UrlHandler.java
@@ -38,9 +38,6 @@
*/
public class UrlHandler {
- static final String RLZ_PROVIDER = "com.google.android.partnersetup.rlzappprovider";
- static final Uri RLZ_PROVIDER_URI = Uri.parse("content://" + RLZ_PROVIDER + "/");
-
// Use in overrideUrlLoading
/* package */ final static String SCHEME_WTAI = "wtai://wp/";
/* package */ final static String SCHEME_WTAI_MC = "wtai://wp/mc;";
@@ -50,9 +47,6 @@
Controller mController;
Activity mActivity;
- private Boolean mIsProviderPresent = null;
- private Uri mRlzUri = null;
-
public UrlHandler(Controller controller) {
mController = controller;
mActivity = mController.getActivity();
@@ -101,20 +95,6 @@ boolean shouldOverrideUrlLoading(Tab tab, WebView view, String url) {
return false;
}
- // If this is a Google search, attempt to add an RLZ string
- // (if one isn't already present).
- if (rlzProviderPresent()) {
- Uri siteUri = Uri.parse(url);
- if (needsRlzString(siteUri)) {
- // Need to look up the RLZ info from a database, so do it in an
- // AsyncTask. Although we are not overriding the URL load synchronously,
- // we guarantee that we will handle this URL load after the task executes,
- // so it's safe to just return true to WebCore now to stop its own loading.
- new RLZTask(tab, siteUri, view).execute();
- return true;
- }
- }
-
if (startActivityForUrl(tab, url)) {
return true;
}
@@ -248,113 +228,4 @@ boolean handleMenuClick(Tab tab, String url) {
return false;
}
-
- // TODO: Move this class into Tab, where it can be properly stopped upon
- // closure of the tab
- private class RLZTask extends AsyncTask<Void, Void, String> {
- private Tab mTab;
- private Uri mSiteUri;
- private WebView mWebView;
-
- public RLZTask(Tab tab, Uri uri, WebView webView) {
- mTab = tab;
- mSiteUri = uri;
- mWebView = webView;
- }
-
- protected String doInBackground(Void... unused) {
- String result = mSiteUri.toString();
- Cursor cur = null;
- try {
- cur = mActivity.getContentResolver()
- .query(getRlzUri(), null, null, null, null);
- if (cur != null && cur.moveToFirst() && !cur.isNull(0)) {
- result = mSiteUri.buildUpon()
- .appendQueryParameter("rlz", cur.getString(0))
- .build().toString();
- }
- } finally {
- if (cur != null) {
- cur.close();
- }
- }
- return result;
- }
-
- protected void onPostExecute(String result) {
- // abort if we left browser already
- if (mController.isActivityPaused()) return;
- // Make sure the Tab was not closed while handling the task
- if (mController.getTabControl().getTabPosition(mTab) != -1) {
- // If the Activity Manager is not invoked, load the URL directly
- if (!startActivityForUrl(mTab, result)) {
- if (!handleMenuClick(mTab, result)) {
- mController.loadUrl(mTab, result);
- }
- }
- }
- }
- }
-
- // Determine whether the RLZ provider is present on the system.
- private boolean rlzProviderPresent() {
- if (mIsProviderPresent == null) {
- PackageManager pm = mActivity.getPackageManager();
- mIsProviderPresent = pm.resolveContentProvider(RLZ_PROVIDER, 0) != null;
- }
- return mIsProviderPresent;
- }
-
- // Retrieve the RLZ access point string and cache the URI used to
- // retrieve RLZ values.
- private Uri getRlzUri() {
- if (mRlzUri == null) {
- String ap = mActivity.getResources()
- .getString(R.string.rlz_access_point);
- mRlzUri = Uri.withAppendedPath(RLZ_PROVIDER_URI, ap);
- }
- return mRlzUri;
- }
-
- // Determine if this URI appears to be for a Google search
- // and does not have an RLZ parameter.
- // Taken largely from Chrome source, src/chrome/browser/google_url_tracker.cc
- private static boolean needsRlzString(Uri uri) {
- String scheme = uri.getScheme();
- if (("http".equals(scheme) || "https".equals(scheme)) &&
- (uri.getQueryParameter("q") != null) &&
- (uri.getQueryParameter("rlz") == null)) {
- String host = uri.getHost();
- if (host == null) {
- return false;
- }
- String[] hostComponents = host.split("\\.");
-
- if (hostComponents.length < 2) {
- return false;
- }
- int googleComponent = hostComponents.length - 2;
- String component = hostComponents[googleComponent];
- if (!"google".equals(component)) {
- if (hostComponents.length < 3 ||
- (!"co".equals(component) && !"com".equals(component))) {
- return false;
- }
- googleComponent = hostComponents.length - 3;
- if (!"google".equals(hostComponents[googleComponent])) {
- return false;
- }
- }
-
- // Google corp network handling.
- if (googleComponent > 0 && "corp".equals(
- hostComponents[googleComponent - 1])) {
- return false;
- }
-
- return true;
- }
- return false;
- }
-
}