diff options
author | Axesh R. Ajmera <aajmera@codeaurora.org> | 2015-06-25 20:25:24 -0700 |
---|---|---|
committer | jrizzoli <joey@cyanogenmoditalia.it> | 2015-08-28 13:15:45 +0200 |
commit | b7b86b9241c2d1c16e1a6f557c832c49731cfa69 (patch) | |
tree | 71cc3567ce60c52e2b89f75cefa25c7165d58922 /src | |
parent | 24410785f5458a165459c6bb40a5253b0ebea919 (diff) | |
download | android_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')
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; } |