summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAxesh R. Ajmera <aajmera@codeaurora.org>2015-06-25 20:25:24 -0700
committerjrizzoli <joey@cyanogenmoditalia.it>2015-08-28 13:15:45 +0200
commitb7b86b9241c2d1c16e1a6f557c832c49731cfa69 (patch)
tree71cc3567ce60c52e2b89f75cefa25c7165d58922 /src
parent24410785f5458a165459c6bb40a5253b0ebea919 (diff)
downloadandroid_packages_apps_Gello-b7b86b9241c2d1c16e1a6f557c832c49731cfa69.tar.gz
android_packages_apps_Gello-b7b86b9241c2d1c16e1a6f557c832c49731cfa69.tar.bz2
android_packages_apps_Gello-b7b86b9241c2d1c16e1a6f557c832c49731cfa69.zip
Set correct permission value for distracting_contents
- Set appropiate flag for webrefiner - Call reset permissions on reset default preferences.
Diffstat (limited to 'src')
-rw-r--r--src/com/android/browser/BrowserSettings.java44
-rw-r--r--src/com/android/browser/Controller.java42
-rw-r--r--src/com/android/browser/preferences/AdvancedPreferencesFragment.java2
-rw-r--r--src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java15
4 files changed, 54 insertions, 49 deletions
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index eb360233..ca5c283b 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -27,6 +27,7 @@ import android.os.Build;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.util.DisplayMetrics;
+import android.webkit.ValueCallback;
import android.webkit.WebStorage;
import com.android.browser.homepages.HomeProvider;
@@ -39,8 +40,10 @@ import com.android.browser.search.SearchEngine;
import com.android.browser.search.SearchEngines;
import java.lang.ref.WeakReference;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
+import java.util.Set;
import org.codeaurora.swe.AutoFillProfile;
import org.codeaurora.swe.CookieManager;
@@ -125,6 +128,47 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
public void onEngineInitializationComplete() {
mEngineInitialized = true;
+
+ // Intialize Web Refiner only once
+ final WebRefiner refiner = WebRefiner.getInstance();
+ if (refiner != null) {
+ refiner.setRulesEnabled(WebRefiner.CATEGORY_ALL,
+ PermissionsServiceFactory.getDefaultPermissions(
+ PermissionsServiceFactory.PermissionType.WEBREFINER));
+
+ PermissionsServiceFactory.getPermissionsService(
+ new ValueCallback<PermissionsServiceFactory.PermissionsService>() {
+ @Override
+ public void onReceiveValue(
+ PermissionsServiceFactory.PermissionsService value) {
+ Set<String> origins = value.getOrigins();
+ ArrayList<String> allowList = new ArrayList<>();
+ ArrayList<String> blockList = new ArrayList<>();
+ for (String origin : origins) {
+ PermissionsServiceFactory.PermissionsService.OriginInfo
+ info = value.getOriginInfo(origin);
+ int perm = info.getPermission(
+ PermissionsServiceFactory.PermissionType.WEBREFINER);
+ if (perm == PermissionsServiceFactory.Permission.ALLOW) {
+ allowList.add(origin);
+ } else if (perm == PermissionsServiceFactory.Permission.BLOCK) {
+ blockList.add(origin);
+ }
+ }
+ if (!allowList.isEmpty()) {
+ refiner.enableRulesForDomains(WebRefiner.CATEGORY_ALL,
+ allowList.toArray(new String[allowList.size()]));
+ }
+
+ if (!blockList.isEmpty()) {
+ refiner.disableRulesForDomains(WebRefiner.CATEGORY_ALL,
+ blockList.toArray(new String[blockList.size()]));
+ }
+ }
+ }
+ );
+ }
+
mAutofillHandler = new AutofillHandler(mContext);
if (mSyncManagedSettings) {
syncManagedSettings();
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index af061617..5be0c9f4 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -88,9 +88,7 @@ import org.codeaurora.swe.CookieManager;
import org.codeaurora.swe.CookieSyncManager;
import org.codeaurora.swe.Engine;
import org.codeaurora.swe.HttpAuthHandler;
-import org.codeaurora.swe.PermissionsServiceFactory;
import org.codeaurora.swe.SslErrorHandler;
-import org.codeaurora.swe.WebRefiner;
import org.codeaurora.swe.WebSettings;
import org.codeaurora.swe.WebView;
import org.codeaurora.swe.WebBackForwardList;
@@ -127,7 +125,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import java.util.Set;
/**
* Controller for browser
@@ -294,45 +291,6 @@ public class Controller
mNetworkHandler = new NetworkStateHandler(mActivity, this);
mHomepageHandler = new HomepageHandler(browser, this);
mAppMenuHandler = new AppMenuHandler(browser, this, R.menu.browser);
-
- final WebRefiner refiner = WebRefiner.getInstance();
- if (refiner != null) {
- refiner.setRulesEnabled(WebRefiner.CATEGORY_ALL,
- !PermissionsServiceFactory.getDefaultPermissions(
- PermissionsServiceFactory.PermissionType.WEBREFINER));
-
- PermissionsServiceFactory.getPermissionsService(
- new ValueCallback<PermissionsServiceFactory.PermissionsService>() {
- @Override
- public void onReceiveValue(
- PermissionsServiceFactory.PermissionsService value) {
- Set<String> origins = value.getOrigins();
- ArrayList<String> allowList = new ArrayList<>();
- ArrayList<String> blockList = new ArrayList<>();
- for (String origin : origins) {
- PermissionsServiceFactory.PermissionsService.OriginInfo
- info = value.getOriginInfo(origin);
- int perm = info.getPermission(
- PermissionsServiceFactory.PermissionType.WEBREFINER);
- if (perm == PermissionsServiceFactory.Permission.ALLOW) {
- allowList.add(origin);
- } else if (perm == PermissionsServiceFactory.Permission.BLOCK) {
- blockList.add(origin);
- }
- }
- if (!allowList.isEmpty()) {
- refiner.enableRulesForDomains(WebRefiner.CATEGORY_ALL,
- allowList.toArray(new String[allowList.size()]));
- }
-
- if (!blockList.isEmpty()) {
- refiner.disableRulesForDomains(WebRefiner.CATEGORY_ALL,
- blockList.toArray(new String[blockList.size()]));
- }
- }
- }
- );
- }
}
@Override
diff --git a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
index 40e01068..cadc9243 100644
--- a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
@@ -37,6 +37,7 @@ import com.android.browser.PreferenceKeys;
import com.android.browser.R;
import org.codeaurora.swe.BrowserCommandLine;
+import org.codeaurora.swe.PermissionsServiceFactory;
public class AdvancedPreferencesFragment
implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener {
@@ -146,6 +147,7 @@ public class AdvancedPreferencesFragment
if (pref.getKey().equals(PreferenceKeys.PREF_RESET_DEFAULT_PREFERENCES)) {
Boolean value = (Boolean) objValue;
if (value.booleanValue() == true) {
+ PermissionsServiceFactory.resetDefaultPermissions();
mFragment.startActivity(new Intent(BrowserActivity.ACTION_RESTART, null,
mFragment.getActivity(), BrowserActivity.class));
return true;
diff --git a/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java b/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
index f7aa2179..68c5607a 100644
--- a/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
+++ b/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
@@ -57,8 +57,13 @@ public class PrivacySecurityPreferencesFragment extends SWEPreferenceFragment
readAndShowPermission("camera", PermissionsServiceFactory.PermissionType.VIDEO);
- readAndShowPermission("distracting_contents",
- PermissionsServiceFactory.PermissionType.WEBREFINER);
+ // since webrefiner and distracting_contents are paradoxes
+ // the value needs to be flipped
+ Preference pref = findPreference("distracting_contents");
+ pref.setOnPreferenceChangeListener(this);
+ showPermission(pref,
+ !PermissionsServiceFactory.getDefaultPermissions(
+ PermissionsServiceFactory.PermissionType.WEBREFINER));
readAndShowPermission("popup_windows", PermissionsServiceFactory.PermissionType.POPUP);
@@ -118,12 +123,8 @@ public class PrivacySecurityPreferencesFragment extends SWEPreferenceFragment
}
if (pref.getKey().toString().equalsIgnoreCase("distracting_contents")) {
- WebRefiner refiner = WebRefiner.getInstance();
PermissionsServiceFactory.setDefaultPermissions(
- PermissionsServiceFactory.PermissionType.WEBREFINER, flag);
- if (refiner != null) {
- refiner.setRulesEnabled(WebRefiner.CATEGORY_ALL, !flag);
- }
+ PermissionsServiceFactory.PermissionType.WEBREFINER, !flag);
return true;
}