Format fix

This commit is contained in:
wchen342
2021-09-27 22:59:48 +03:00
parent d21977e52d
commit abcd7cf7e3
17 changed files with 183 additions and 155 deletions
@@ -8,9 +8,9 @@ package org.chromium.base;
import org.chromium.base.Log;
import java.lang.Class;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Field;
public class BraveReflectionUtil {
private static String TAG = "BraveReflectionUtil";
@@ -38,8 +38,7 @@ public class BraveReflectionUtil {
}
}
Method toInvoke = methodOwner.getDeclaredMethod(method, parameterTypes);
if (!toInvoke.isAccessible())
toInvoke.setAccessible(true);
if (!toInvoke.isAccessible()) toInvoke.setAccessible(true);
try {
return toInvoke.invoke(obj, args);
} catch (IllegalAccessException e) {
@@ -56,11 +55,10 @@ public class BraveReflectionUtil {
return null;
}
public static Object getField(Class ownerClass, String fieldName, Object obj){
public static Object getField(Class ownerClass, String fieldName, Object obj) {
try {
Field field = ownerClass.getDeclaredField(fieldName);
if(!field.isAccessible())
field.setAccessible(true);
if (!field.isAccessible()) field.setAccessible(true);
return field.get(obj);
} catch (NoSuchFieldException e) {
Log.e(TAG, "Field not found: " + e);
@@ -205,7 +205,8 @@ public class BytecodeTest {
Assert.assertTrue(classExists("org/chromium/chrome/browser/theme/ThemeUtils"));
Assert.assertTrue(classExists("org/chromium/chrome/browser/share/ShareDelegateImpl"));
Assert.assertTrue(classExists("org/chromium/chrome/browser/share/BraveShareDelegateImpl"));
Assert.assertTrue(classExists("org/chromium/components/browser_ui/site_settings/ContentSettingsResources$ResourceItem"));
Assert.assertTrue(classExists(
"org/chromium/components/browser_ui/site_settings/ContentSettingsResources$ResourceItem"));
}
@Test
@@ -306,21 +307,29 @@ public class BytecodeTest {
"isReliabilityLoggingEnabled", false, null));
Assert.assertTrue(methodExists("org/chromium/chrome/browser/theme/ThemeUtils",
"getTextBoxColorForToolbarBackgroundInNonNativePage", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher",
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher",
"getPermissionsType", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
"onOptionsItemSelected", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
"getAddExceptionDialogMessage", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
"resetList", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/ContentSettingsResources",
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/ContentSettingsResources",
"getResourceItem", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"getPreferenceKey", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"setupContentSettingsPreferences", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"setupContentSettingsPreference", false, null));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/Website",
"setContentSetting", false, null));
@@ -333,44 +342,46 @@ public class BytecodeTest {
"hideOverview", true, void.class));
// Check for method type declaration changes here
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/BraveContentSettingsResources",
"getResourceItem", true,
getClassForPath("org/chromium/components/browser_ui/site_settings/ContentSettingsResources$ResourceItem"), int.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/ContentSettingsResources",
"getResourceItem", true,
getClassForPath("org/chromium/components/browser_ui/site_settings/ContentSettingsResources$ResourceItem"), int.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
"getAddExceptionDialogMessage", true, String.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
"resetList", true, void.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"getPreferenceKey", true, String.class, int.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"setupContentSettingsPreferences", true, void.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"setupContentSettingsPreference", true, void.class, Preference.class, Integer.class, boolean.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/Website",
"getPermissionInfo", true, PermissionInfo.class, int.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/Website",
"getContentSettingException", true, ContentSettingException.class, int.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/Website",
"getAddress", true, WebsiteAddress.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/Website",
"setContentSettingException", true, void.class, int.class, ContentSettingException.class));
Assert.assertTrue(
methodExists("org/chromium/components/browser_ui/site_settings/Website",
"setContentSetting", true, void.class, BrowserContextHandle.class, int.class, int.class));
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/BraveContentSettingsResources",
"getResourceItem", true,
getClassForPath(
"org/chromium/components/browser_ui/site_settings/ContentSettingsResources$ResourceItem"),
int.class));
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/ContentSettingsResources",
"getResourceItem", true,
getClassForPath(
"org/chromium/components/browser_ui/site_settings/ContentSettingsResources$ResourceItem"),
int.class));
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
"getAddExceptionDialogMessage", true, String.class));
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
"resetList", true, void.class));
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"getPreferenceKey", true, String.class, int.class));
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"setupContentSettingsPreferences", true, void.class));
Assert.assertTrue(methodExists(
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"setupContentSettingsPreference", true, void.class, Preference.class, Integer.class,
boolean.class));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/Website",
"getPermissionInfo", true, PermissionInfo.class, int.class));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/Website",
"getContentSettingException", true, ContentSettingException.class, int.class));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/Website",
"getAddress", true, WebsiteAddress.class));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/Website",
"setContentSettingException", true, void.class, int.class,
ContentSettingException.class));
Assert.assertTrue(methodExists("org/chromium/components/browser_ui/site_settings/Website",
"setContentSetting", true, void.class, BrowserContextHandle.class, int.class,
int.class));
// NOTE: Add new checks above. For each new check in this method add proguard exception in
// `brave/android/java/proguard.flags` file under `Add methods for invocation below`
// section. Both test and regular apks should have the same exceptions.
@@ -625,8 +636,8 @@ public class BytecodeTest {
"org/chromium/components/browser_ui/site_settings/SingleCategorySettings",
"mCategory", true, SiteSettingsCategory.class));
Assert.assertTrue(fieldExists(
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"mSite", true, Website.class));
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings", "mSite",
true, Website.class));
}
@Test
@@ -672,8 +683,7 @@ public class BytecodeTest {
Assert.assertTrue(checkSuperName(
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings",
"org/chromium/components/browser_ui/site_settings/BraveSingleWebsiteSettings"));
Assert.assertTrue(checkSuperName(
"org/chromium/components/browser_ui/site_settings/Website",
Assert.assertTrue(checkSuperName("org/chromium/components/browser_ui/site_settings/Website",
"org/chromium/components/browser_ui/site_settings/BraveWebsite"));
}
@@ -718,8 +728,8 @@ public class BytecodeTest {
return fieldExists(className, fieldName, false, null);
}
private boolean fieldExists(String className, String fieldName, Boolean checkTypes,
Class<?> fieldType) {
private boolean fieldExists(
String className, String fieldName, Boolean checkTypes, Class<?> fieldType) {
Class c = getClassForPath(className);
if (c == null) {
return false;
@@ -727,8 +737,7 @@ public class BytecodeTest {
for (Field f : c.getDeclaredFields()) {
if (f.getName().equals(fieldName)) {
if (checkTypes) {
if (fieldType != null && f.getType().equals(fieldType))
return true;
if (fieldType != null && f.getType().equals(fieldType)) return true;
} else
return true;
}
@@ -96,8 +96,8 @@ class BraveClassVisitor extends ClassVisitor {
Map<String, String> types = getMapForRedirectTypeInMethod(mName, mMethod.name);
if (types != null && types.containsKey(type)) {
String newType = types.get(type);
System.out.println("redirecting type in method " + mMethod.name
+ " in class " + mName + " from " + type + " to " + newType);
System.out.println("redirecting type in method " + mMethod.name + " in class "
+ mName + " from " + type + " to " + newType);
type = newType;
}
super.visitTypeInsn(opcode, type);
@@ -166,8 +166,7 @@ class BraveClassVisitor extends ClassVisitor {
mMakePublicMethods.entrySet()) {
String entryClassName = entry.getKey();
ArrayList<String> methodNames = entry.getValue();
return className.equals(entryClassName) &&
methodNames.contains(methodName);
return className.equals(entryClassName) && methodNames.contains(methodName);
}
return false;
@@ -187,12 +186,10 @@ class BraveClassVisitor extends ClassVisitor {
}
private boolean shouldMakePrivateMethod(String className, String methodName) {
for(Map.Entry<String, ArrayList<String>> entry :
mMakePrivateMethods.entrySet()) {
for (Map.Entry<String, ArrayList<String>> entry : mMakePrivateMethods.entrySet()) {
String entryClassName = entry.getKey();
ArrayList<String> methodNames = entry.getValue();
return className.equals(entryClassName) &&
methodNames.contains(methodName);
return className.equals(entryClassName) && methodNames.contains(methodName);
}
return false;
@@ -289,8 +286,7 @@ class BraveClassVisitor extends ClassVisitor {
}
protected void makeNonFinalClass(String className) {
if (!mMakeNonFinalClasses.contains(className))
mMakeNonFinalClasses.add(className);
if (!mMakeNonFinalClasses.contains(className)) mMakeNonFinalClasses.add(className);
}
private boolean shouldMakePublicInnerClass(String innerName) {
@@ -359,12 +355,11 @@ class BraveClassVisitor extends ClassVisitor {
}
private Map<String, String> getMapForRedirectTypeInMethod(String className, String methodName) {
for(Map.Entry<String, Map<String, Map<String, String>>> entry :
for (Map.Entry<String, Map<String, Map<String, String>>> entry :
mRedirectMethodType.entrySet()) {
String entryClassName = entry.getKey();
Map<String, Map<String, String>> methodNames = entry.getValue();
for(Map.Entry<String, Map<String, String>> entryMethod :
methodNames.entrySet()) {
for (Map.Entry<String, Map<String, String>> entryMethod : methodNames.entrySet()) {
String entryMethodName = entryMethod.getKey();
Map<String, String> typeNames = entryMethod.getValue();
if (className.equals(entryClassName) && entryMethodName.equals(methodName))
@@ -375,8 +370,8 @@ class BraveClassVisitor extends ClassVisitor {
return null;
}
protected void redirectTypeInMethod(String className,
String methodName, String originalTypeName, String newTypeName) {
protected void redirectTypeInMethod(
String className, String methodName, String originalTypeName, String newTypeName) {
Map<String, Map<String, String>> methods = mRedirectMethodType.get(className);
if (methods == null) {
methods = new HashMap<String, Map<String, String>>();
@@ -470,8 +465,9 @@ class BraveClassVisitor extends ClassVisitor {
if (desc.contains(originalTypeName)) {
// Use literal replacement like other methods in the class
desc = desc.replace(originalTypeName, newTypeName);
System.out.println("redirecting type in method declaration " + name + " in class "
+ mName + " from " + originalTypeName + " to " + newTypeName);
System.out.println("redirecting type in method declaration " + name
+ " in class " + mName + " from " + originalTypeName + " to "
+ newTypeName);
}
}
}
@@ -8,19 +8,26 @@ package org.brave.bytecode;
import org.objectweb.asm.ClassVisitor;
public class BraveContentSettingsResourcesClassAdapter extends BraveClassVisitor {
static String sContentSettingsResourcesClassName = "org/chromium/components/browser_ui/site_settings/ContentSettingsResources";
static String sBraveContentSettingsResourcesClassName = "org/chromium/components/browser_ui/site_settings/BraveContentSettingsResources";
static String sContentSettingsResourcesResourceItemClassName = "org/chromium/components/browser_ui/site_settings/ContentSettingsResources$ResourceItem";
static String sBraveContentSettingsResourcesResourceItemClassName = "org/chromium/components/browser_ui/site_settings/BraveContentSettingsResources$ResourceItem";
static String sContentSettingsResourcesClassName =
"org/chromium/components/browser_ui/site_settings/ContentSettingsResources";
static String sBraveContentSettingsResourcesClassName =
"org/chromium/components/browser_ui/site_settings/BraveContentSettingsResources";
static String sContentSettingsResourcesResourceItemClassName =
"org/chromium/components/browser_ui/site_settings/ContentSettingsResources$ResourceItem";
static String sBraveContentSettingsResourcesResourceItemClassName =
"org/chromium/components/browser_ui/site_settings/BraveContentSettingsResources$ResourceItem";
public BraveContentSettingsResourcesClassAdapter(ClassVisitor visitor) {
super(visitor);
makePublicMethod(sContentSettingsResourcesClassName, "getResourceItem");
changeMethodOwner(
sContentSettingsResourcesClassName, "getResourceItem", sBraveContentSettingsResourcesClassName);
changeMethodOwner(sContentSettingsResourcesClassName, "getResourceItem",
sBraveContentSettingsResourcesClassName);
makePublicInnerClass(sContentSettingsResourcesClassName, "ResourceItem");
redirectConstructor(sBraveContentSettingsResourcesResourceItemClassName, sContentSettingsResourcesResourceItemClassName);
redirectTypeInMethod(sBraveContentSettingsResourcesClassName, "getResourceItem", sBraveContentSettingsResourcesResourceItemClassName, sContentSettingsResourcesResourceItemClassName);
redirectConstructor(sBraveContentSettingsResourcesResourceItemClassName,
sContentSettingsResourcesResourceItemClassName);
redirectTypeInMethod(sBraveContentSettingsResourcesClassName, "getResourceItem",
sBraveContentSettingsResourcesResourceItemClassName,
sContentSettingsResourcesResourceItemClassName);
}
}
@@ -15,8 +15,11 @@ public class BraveSingleCategorySettingsClassAdapter extends BraveClassVisitor {
super(visitor);
changeSuperName(sSingleCategorySettingsClassName, sBraveSingleCategorySettingsClassName);
changeMethodOwner(sSingleCategorySettingsClassName, "onOptionsItemSelected", sBraveSingleCategorySettingsClassName);
changeMethodOwner(sSingleCategorySettingsClassName, "getAddExceptionDialogMessage", sBraveSingleCategorySettingsClassName);
changeMethodOwner(sSingleCategorySettingsClassName, "resetList", sBraveSingleCategorySettingsClassName);
changeMethodOwner(sSingleCategorySettingsClassName, "onOptionsItemSelected",
sBraveSingleCategorySettingsClassName);
changeMethodOwner(sSingleCategorySettingsClassName, "getAddExceptionDialogMessage",
sBraveSingleCategorySettingsClassName);
changeMethodOwner(sSingleCategorySettingsClassName, "resetList",
sBraveSingleCategorySettingsClassName);
}
}
@@ -8,18 +8,23 @@ package org.brave.bytecode;
import org.objectweb.asm.ClassVisitor;
public class BraveSingleWebsiteSettingsClassAdapter extends BraveClassVisitor {
static String sSingleWebsiteSettingsClassName = "org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings";
static String sBraveSingleWebsiteSettingsClassName = "org/chromium/components/browser_ui/site_settings/BraveSingleWebsiteSettings";
static String sSingleWebsiteSettingsClassName =
"org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings";
static String sBraveSingleWebsiteSettingsClassName =
"org/chromium/components/browser_ui/site_settings/BraveSingleWebsiteSettings";
public BraveSingleWebsiteSettingsClassAdapter(ClassVisitor visitor) {
super(visitor);
changeSuperName(sSingleWebsiteSettingsClassName, sBraveSingleWebsiteSettingsClassName);
changeMethodOwner(sSingleWebsiteSettingsClassName, "getPreferenceKey", sBraveSingleWebsiteSettingsClassName);
changeMethodOwner(sSingleWebsiteSettingsClassName, "setupContentSettingsPreferences", sBraveSingleWebsiteSettingsClassName);
changeMethodOwner(sSingleWebsiteSettingsClassName, "getPreferenceKey",
sBraveSingleWebsiteSettingsClassName);
changeMethodOwner(sSingleWebsiteSettingsClassName, "setupContentSettingsPreferences",
sBraveSingleWebsiteSettingsClassName);
makePublicMethod(sSingleWebsiteSettingsClassName, "setupContentSettingsPreference");
changeMethodOwner(sBraveSingleWebsiteSettingsClassName, "setupContentSettingsPreference", sSingleWebsiteSettingsClassName);
changeMethodOwner(sBraveSingleWebsiteSettingsClassName, "setupContentSettingsPreference",
sSingleWebsiteSettingsClassName);
}
}
@@ -8,13 +8,17 @@ package org.brave.bytecode;
import org.objectweb.asm.ClassVisitor;
public class BraveSiteSettingsCategoryClassAdapter extends BraveClassVisitor {
static String sSiteSettingsCategoryClassName = "org/chromium/components/browser_ui/site_settings/SiteSettingsCategory";
static String sBraveSiteSettingsCategoryClassName = "org/chromium/components/browser_ui/site_settings/BraveSiteSettingsCategory";
static String sSiteSettingsCategoryClassName =
"org/chromium/components/browser_ui/site_settings/SiteSettingsCategory";
static String sBraveSiteSettingsCategoryClassName =
"org/chromium/components/browser_ui/site_settings/BraveSiteSettingsCategory";
public BraveSiteSettingsCategoryClassAdapter(ClassVisitor visitor) {
super(visitor);
changeMethodOwner(sSiteSettingsCategoryClassName, "contentSettingsType", sBraveSiteSettingsCategoryClassName);
changeMethodOwner(sSiteSettingsCategoryClassName, "preferenceKey", sBraveSiteSettingsCategoryClassName);
changeMethodOwner(sSiteSettingsCategoryClassName, "contentSettingsType",
sBraveSiteSettingsCategoryClassName);
changeMethodOwner(sSiteSettingsCategoryClassName, "preferenceKey",
sBraveSiteSettingsCategoryClassName);
}
}
@@ -9,7 +9,8 @@ import org.objectweb.asm.ClassVisitor;
public class BraveWebsiteClassAdapter extends BraveClassVisitor {
static String sWebsiteClassName = "org/chromium/components/browser_ui/site_settings/Website";
static String sBraveWebsiteClassName = "org/chromium/components/browser_ui/site_settings/BraveWebsite";
static String sBraveWebsiteClassName =
"org/chromium/components/browser_ui/site_settings/BraveWebsite";
public BraveWebsiteClassAdapter(ClassVisitor visitor) {
super(visitor);
@@ -8,13 +8,15 @@ package org.brave.bytecode;
import org.objectweb.asm.ClassVisitor;
public class BraveWebsitePermissionsFetcherClassAdapter extends BraveClassVisitor {
static String sWebsitePermissionsFetcherClassName = "org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher";
static String sBraveWebsitePermissionsFetcherClassName = "org/chromium/components/browser_ui/site_settings/BraveWebsitePermissionsFetcher";
static String sWebsitePermissionsFetcherClassName =
"org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher";
static String sBraveWebsitePermissionsFetcherClassName =
"org/chromium/components/browser_ui/site_settings/BraveWebsitePermissionsFetcher";
public BraveWebsitePermissionsFetcherClassAdapter(ClassVisitor visitor) {
super(visitor);
changeMethodOwner(
sWebsitePermissionsFetcherClassName, "getPermissionsType", sBraveWebsitePermissionsFetcherClassName);
changeMethodOwner(sWebsitePermissionsFetcherClassName, "getPermissionsType",
sBraveWebsitePermissionsFetcherClassName);
}
}
@@ -1,5 +1,6 @@
include_rules = [
"+../../../../../components/browser_ui/site_settings/android",
"+../../../../../../components/browser_ui/site_settings/android",
"+components/browser_ui/site_settings/android",
"+components/content_settings/core/common",
"+components/permissions",
]
@@ -1,10 +1,13 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
/* Copyright (c) 2021 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "../../../../../../components/content_settings/core/common/content_settings_types.h"
#include "../../../../../../components/permissions/permission_manager.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/permissions/permission_manager.h"
#define BACKGROUND_SYNC AUTOPLAY: case ContentSettingsType::BACKGROUND_SYNC
#define BACKGROUND_SYNC \
AUTOPLAY: \
case ContentSettingsType::BACKGROUND_SYNC
#include "../../../../../../components/browser_ui/site_settings/android/website_preference_bridge.cc"
#undef BACKGROUND_SYNC
@@ -8,26 +8,25 @@ package org.chromium.components.browser_ui.site_settings;
import androidx.annotation.Nullable;
import org.chromium.base.BraveReflectionUtil;
import org.chromium.components.content_settings.ContentSettingsType;
import org.chromium.components.content_settings.ContentSettingValues;
import org.chromium.components.content_settings.ContentSettingsType;
public class BraveContentSettingsResources extends ContentSettingsResources {
// Placeholder class
protected static class ResourceItem {
ResourceItem(int icon, int smallIcon, int title,
@ContentSettingValues @Nullable Integer defaultEnabledValue,
@ContentSettingValues @Nullable Integer defaultDisabledValue, int enabledSummary,
int disabledSummary) {
assert (false);
assert (false);
}
}
protected static ResourceItem getResourceItem(int contentType) {
switch (contentType) {
case ContentSettingsType.AUTOPLAY:
return new ResourceItem(R.drawable.ic_volume_up_grey600_24dp,
0, R.string.autoplay_title, ContentSettingValues.ALLOW,
return new ResourceItem(R.drawable.ic_volume_up_grey600_24dp, 0,
R.string.autoplay_title, ContentSettingValues.ALLOW,
ContentSettingValues.BLOCK,
R.string.website_settings_category_autoplay_allowed, 0);
}
@@ -8,16 +8,15 @@ package org.chromium.components.browser_ui.site_settings;
import android.os.Bundle;
import android.view.MenuItem;
import org.chromium.base.annotations.UsedByReflection;
import org.chromium.base.Log;
import org.chromium.base.BraveReflectionUtil;
import org.chromium.base.Log;
import org.chromium.base.annotations.UsedByReflection;
import org.chromium.components.content_settings.ContentSettingsType;
import org.chromium.content_public.browser.BrowserContextHandle;
@UsedByReflection("brave_site_settings_preferences.xml")
public class BraveSingleCategorySettings extends SiteSettingsPreferenceFragment
implements AddExceptionPreference.SiteAddedCallback {
public class BraveSingleCategorySettings
extends SiteSettingsPreferenceFragment implements AddExceptionPreference.SiteAddedCallback {
private static final String ADD_EXCEPTION_KEY = "add_exception";
@Override
@@ -35,13 +34,14 @@ public class BraveSingleCategorySettings extends SiteSettingsPreferenceFragment
BrowserContextHandle browserContextHandle =
getSiteSettingsDelegate().getBrowserContextHandle();
int resource = 0;
SiteSettingsCategory mCategory = (SiteSettingsCategory) BraveReflectionUtil.getField(SingleCategorySettings.class, "mCategory", this);
SiteSettingsCategory mCategory = (SiteSettingsCategory) BraveReflectionUtil.getField(
SingleCategorySettings.class, "mCategory", this);
if (mCategory.showSites(SiteSettingsCategory.Type.AUTOPLAY)) {
resource = R.string.website_settings_add_site_description_autoplay;
} else {
return (String) BraveReflectionUtil.InvokeMethod(
SingleCategorySettings.class, this, "getAddExceptionDialogMessage");
SingleCategorySettings.class, this, "getAddExceptionDialogMessage");
}
assert resource > 0;
return getString(resource);
@@ -52,14 +52,16 @@ public class BraveSingleCategorySettings extends SiteSettingsPreferenceFragment
BrowserContextHandle browserContextHandle =
getSiteSettingsDelegate().getBrowserContextHandle();
boolean exception = false;
SiteSettingsCategory mCategory = (SiteSettingsCategory) BraveReflectionUtil.getField(SingleCategorySettings.class, "mCategory", this);
SiteSettingsCategory mCategory = (SiteSettingsCategory) BraveReflectionUtil.getField(
SingleCategorySettings.class, "mCategory", this);
if (mCategory.showSites(SiteSettingsCategory.Type.AUTOPLAY)) {
exception = true;
}
if (exception) {
getPreferenceScreen().addPreference(new AddExceptionPreference(getPreferenceManager().getContext(),
ADD_EXCEPTION_KEY, getAddExceptionDialogMessage(), mCategory, this));
getPreferenceScreen().addPreference(
new AddExceptionPreference(getPreferenceManager().getContext(),
ADD_EXCEPTION_KEY, getAddExceptionDialogMessage(), mCategory, this));
}
}
@@ -18,10 +18,9 @@ import org.chromium.components.content_settings.ContentSettingValues;
import org.chromium.components.content_settings.ContentSettingsType;
import org.chromium.content_public.browser.BrowserContextHandle;
public class BraveSingleWebsiteSettings extends SiteSettingsPreferenceFragment {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { }
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {}
public static @Nullable String getPreferenceKey(@ContentSettingsType int type) {
switch (type) {
@@ -29,8 +28,7 @@ public class BraveSingleWebsiteSettings extends SiteSettingsPreferenceFragment {
return "autoplay_permission_list";
default:
return (String) BraveReflectionUtil.InvokeMethod(
SingleWebsiteSettings.class, null, "getPreferenceKey",
int.class, type);
SingleWebsiteSettings.class, null, "getPreferenceKey", int.class, type);
}
}
@@ -41,7 +39,7 @@ public class BraveSingleWebsiteSettings extends SiteSettingsPreferenceFragment {
setUpAutoplayPreference(preference);
// SingleWebsiteSettings.setupContentSettingsPreferences has its own for loop
BraveReflectionUtil.InvokeMethod(
SingleWebsiteSettings.class, this, "setupContentSettingsPreferences");
SingleWebsiteSettings.class, this, "setupContentSettingsPreferences");
}
private void setUpAutoplayPreference(Preference preference) {
@@ -49,7 +47,8 @@ public class BraveSingleWebsiteSettings extends SiteSettingsPreferenceFragment {
getSiteSettingsDelegate().getBrowserContextHandle();
@ContentSettingValues
@Nullable
Website mSite = (Website) BraveReflectionUtil.getField(SingleWebsiteSettings.class, "mSite", this);
Website mSite =
(Website) BraveReflectionUtil.getField(SingleWebsiteSettings.class, "mSite", this);
Integer currentValue =
mSite.getContentSetting(browserContextHandle, ContentSettingsType.AUTOPLAY);
// In order to always show the autoplay permission, set it up with the default value if it
@@ -61,10 +60,9 @@ public class BraveSingleWebsiteSettings extends SiteSettingsPreferenceFragment {
: ContentSettingValues.BLOCK;
}
// Not possible to embargo AUTOPLAY.
BraveReflectionUtil.InvokeMethod(
SingleWebsiteSettings.class, this, "setupContentSettingsPreference",
Preference.class, preference, Integer.class, currentValue,
boolean.class, false);
BraveReflectionUtil.InvokeMethod(SingleWebsiteSettings.class, this,
"setupContentSettingsPreference", Preference.class, preference, Integer.class,
currentValue, boolean.class, false);
}
private Context getStyledContext() {
@@ -17,7 +17,7 @@ public class BraveSiteSettingsCategory {
return SiteSettingsCategory.contentSettingsType(type);
}
}
public static String preferenceKey(@Type int type) {
switch (type) {
case Type.AUTOPLAY:
@@ -5,40 +5,40 @@
package org.chromium.components.browser_ui.site_settings;
import org.chromium.base.annotations.UsedByReflection;
import org.chromium.base.BraveReflectionUtil;
import org.chromium.base.annotations.UsedByReflection;
import org.chromium.components.content_settings.ContentSettingValues;
import org.chromium.components.content_settings.ContentSettingsType;
import org.chromium.content_public.browser.BrowserContextHandle;
@UsedByReflection("Website")
public class BraveWebsite {
public void setContentSetting(BrowserContextHandle browserContextHandle,
@ContentSettingsType int type, @ContentSettingValues int value) {
PermissionInfo info = (PermissionInfo) BraveReflectionUtil.InvokeMethod(Website.class, this, "getPermissionInfo",
int.class, type);
PermissionInfo info = (PermissionInfo) BraveReflectionUtil.InvokeMethod(
Website.class, this, "getPermissionInfo", int.class, type);
if (info != null) {
info.setContentSetting(browserContextHandle, value);
return;
}
ContentSettingException exception = (ContentSettingException) BraveReflectionUtil.InvokeMethod(
Website.class, this, "getContentSettingException", int.class, type);
ContentSettingException exception =
(ContentSettingException) BraveReflectionUtil.InvokeMethod(
Website.class, this, "getContentSettingException", int.class, type);
if (type == ContentSettingsType.AUTOPLAY) {
if (exception == null) {
exception = new ContentSettingException(
ContentSettingsType.AUTOPLAY, ((WebsiteAddress) BraveReflectionUtil.InvokeMethod(
Website.class, this, "getAddress")).getHost(), value, "");
BraveReflectionUtil.InvokeMethod(
Website.class, this, "setContentSettingException", int.class, type, ContentSettingException.class, exception);
exception = new ContentSettingException(ContentSettingsType.AUTOPLAY,
((WebsiteAddress) BraveReflectionUtil.InvokeMethod(
Website.class, this, "getAddress"))
.getHost(),
value, "");
BraveReflectionUtil.InvokeMethod(Website.class, this, "setContentSettingException",
int.class, type, ContentSettingException.class, exception);
}
}
BraveReflectionUtil.InvokeMethod(
Website.class, this, "setContentSetting",
BrowserContextHandle.class, browserContextHandle,
int.class, type, int.class, value);
BraveReflectionUtil.InvokeMethod(Website.class, this, "setContentSetting",
BrowserContextHandle.class, browserContextHandle, int.class, type, int.class,
value);
}
}
@@ -11,10 +11,10 @@ import org.chromium.components.content_settings.ContentSettingsType;
public class BraveWebsitePermissionsFetcher {
public static WebsitePermissionsType getPermissionsType(
@ContentSettingsType int contentSettingsType) {
switch (contentSettingsType) {
case ContentSettingsType.AUTOPLAY:
return WebsitePermissionsType.CONTENT_SETTING_EXCEPTION;
}
return WebsitePermissionsFetcher.getPermissionsType(contentSettingsType);
switch (contentSettingsType) {
case ContentSettingsType.AUTOPLAY:
return WebsitePermissionsType.CONTENT_SETTING_EXCEPTION;
}
return WebsitePermissionsFetcher.getPermissionsType(contentSettingsType);
}
}