package org.lobobrowser.security;
import java.util.Optional;
import org.javatuples.Pair;
import org.lobobrowser.security.PermissionSystem.Permission;
import org.lobobrowser.ua.UserAgentContext.RequestKind;
interface RequestRuleStore {
public Pair<Permission, Permission[]> getPermissions(final String frameHostPattern, final String requestHost);
public void storePermissions(final String frameHost, final String requestHost, Optional<RequestKind> kindOpt, Permission permission);
public static RequestRuleStore getStore() {
// return InMemoryStore.getInstance();
return DBRequestRuleStore.getInstance();
}
static class HelperPrivate {
static void initStore(final RequestRuleStore store) {
final Pair<Permission, Permission[]> permissions = store.getPermissions("*", "");
assert (!permissions.getValue0().isDecided());
store.storePermissions("*", "", Optional.empty(), Permission.Deny);
store.storePermissions("*", "", Optional.of(RequestKind.Image), Permission.Allow);
store.storePermissions("*", "", Optional.of(RequestKind.CSS), Permission.Allow);
}
}
}