package org.lobobrowser.request; import java.security.Policy; import java.util.HashSet; import java.util.Set; import org.lobobrowser.ua.NavigatorFrame; import org.lobobrowser.ua.NetworkRequest; import org.lobobrowser.ua.UserAgentContext; public class SilentUserAgentContextImpl implements UserAgentContext { private static final Set<String> mediaNames = new HashSet<>(); private final NavigatorFrame frame; static { // Media names supported here final Set<String> mn = mediaNames; mn.add("screen"); mn.add("tv"); mn.add("tty"); mn.add("all"); } public SilentUserAgentContextImpl(final NavigatorFrame frame) { this.frame = frame; if (frame == null) { throw new IllegalArgumentException("frame should not be null"); } } public boolean isMedia(final String mediaName) { return mediaNames.contains(mediaName.toLowerCase()); } public NetworkRequest createHttpRequest() { return this.frame.createNetworkRequest(); } /* * (non-Javadoc) * * @see org.xamjwg.html.HtmlParserContext#getAppCodeName() */ public String getAppCodeName() { return ""; } /* * (non-Javadoc) * * @see org.xamjwg.html.HtmlParserContext#getAppMinorVersion() */ public String getAppMinorVersion() { return ""; } /* * (non-Javadoc) * * @see org.xamjwg.html.HtmlParserContext#getAppName() */ public String getAppName() { return ""; } /* * (non-Javadoc) * * @see org.xamjwg.html.HtmlParserContext#getAppVersion() */ public String getAppVersion() { return ""; } /* * (non-Javadoc) * * @see org.xamjwg.html.HtmlParserContext#getBrowserLanguage() */ public String getBrowserLanguage() { return "EN"; // TODO } /* * (non-Javadoc) * * @see org.xamjwg.html.HtmlParserContext#getPlatform() */ public String getPlatform() { return ""; } /* * (non-Javadoc) * * @see org.xamjwg.html.HtmlParserContext#getUserAgent() */ public String getUserAgent() { return ""; } /* * (non-Javadoc) * * @see org.xamjwg.html.HtmlParserContext#isCookieEnabled() */ public boolean isCookieEnabled() { // TODO: Settings return true; } public String getCookie(final java.net.URL url) { // Requires privileges. System.out.println("Get cookie: " + url); return RequestEngine.getInstance().getCookie(url); } public boolean isScriptingEnabled() { // TODO: Settings return true; } public void setCookie(final java.net.URL url, final String cookieSpec) { // Requires privileges. RequestEngine.getInstance().setCookie(url, cookieSpec); } public Policy getSecurityPolicy() { return org.lobobrowser.security.LocalSecurityPolicy.getInstance(); } public int getScriptingOptimizationLevel() { // TODO: Settings return -1; } public String getVendor() { return ""; } public String getProduct() { return this.getAppName(); } public boolean isExternalCSSEnabled() { return true; } public boolean isInternalCSSEnabled() { return true; } public boolean isRequestPermitted(final Request request) { return frame.isRequestPermitted(request); } }