Format fix
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+15
-8
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+6
-3
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+10
-5
@@ -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
-4
@@ -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);
|
||||
|
||||
+6
-4
@@ -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",
|
||||
]
|
||||
|
||||
+7
-4
@@ -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
|
||||
|
||||
+4
-5
@@ -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);
|
||||
}
|
||||
|
||||
+12
-10
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-10
@@ -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() {
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ public class BraveSiteSettingsCategory {
|
||||
return SiteSettingsCategory.contentSettingsType(type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static String preferenceKey(@Type int type) {
|
||||
switch (type) {
|
||||
case Type.AUTOPLAY:
|
||||
|
||||
+16
-16
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user