summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/BrowserSettings.java
diff options
context:
space:
mode:
authorVivek Sekhar <vsekhar@codeaurora.org>2014-11-13 16:20:11 -0800
committerVivek Sekhar <vsekhar@codeaurora.org>2014-11-20 15:47:23 -0800
commit7b3d2daaf37c1a5e9f5a9b482c13c9f25b170b27 (patch)
treef342c5c9bd563f4976bb270a6b2bd35e36231c09 /src/com/android/browser/BrowserSettings.java
parent5712096ce835175100b2847ff665b26abce55f0c (diff)
downloadandroid_packages_apps_Gello-7b3d2daaf37c1a5e9f5a9b482c13c9f25b170b27.tar.gz
android_packages_apps_Gello-7b3d2daaf37c1a5e9f5a9b482c13c9f25b170b27.tar.bz2
android_packages_apps_Gello-7b3d2daaf37c1a5e9f5a9b482c13c9f25b170b27.zip
Re-implement UserAgent in browser
- Remove calls to SWE's WebSetting API and use the newer implementation of the engine. The newer implementation tracks UserAgent per navigation entry. - Allow to override the UserAgent using command line switches. - Remove debug option to change UserAgent string. - BrowserConfig class cleanup. Change-Id: Ib1cc4763e0cbf0207793d1f4e6b1644a9dbb5c08
Diffstat (limited to 'src/com/android/browser/BrowserSettings.java')
-rw-r--r--src/com/android/browser/BrowserSettings.java83
1 files changed, 5 insertions, 78 deletions
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 255aaf82..7e07721d 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -40,7 +40,6 @@ import com.android.browser.search.SearchEngines;
import java.lang.ref.WeakReference;
import java.util.Iterator;
import java.util.LinkedList;
-import java.util.Locale;
import java.util.WeakHashMap;
import org.codeaurora.swe.AutoFillProfile;
@@ -60,35 +59,6 @@ import org.codeaurora.swe.WebViewDatabase;
public class BrowserSettings implements OnSharedPreferenceChangeListener,
PreferenceKeys {
- // TODO: Do something with this UserAgent stuff
- private static final String DESKTOP_USERAGENT = "Mozilla/5.0 (X11; " +
- "Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) " +
- "Chrome/11.0.696.34 Safari/534.24";
-
- private static final String IPHONE_USERAGENT = "Mozilla/5.0 (iPhone; U; " +
- "CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 " +
- "(KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7";
-
- private static final String IPAD_USERAGENT = "Mozilla/5.0 (iPad; U; " +
- "CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 " +
- "(KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10";
-
- private static final String FROYO_USERAGENT = "Mozilla/5.0 (Linux; U; " +
- "Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 " +
- "(KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
-
- private static final String HONEYCOMB_USERAGENT = "Mozilla/5.0 (Linux; U; " +
- "Android 3.1; en-us; Xoom Build/HMJ25) AppleWebKit/534.13 " +
- "(KHTML, like Gecko) Version/4.0 Safari/534.13";
-
- private static final String USER_AGENTS[] = { null,
- DESKTOP_USERAGENT,
- IPHONE_USERAGENT,
- IPAD_USERAGENT,
- FROYO_USERAGENT,
- HONEYCOMB_USERAGENT,
- };
-
private static final String TAG = "BrowserSettings";
// The minimum min font size
// Aka, the lower bounds for the min font size range
@@ -113,7 +83,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
private Controller mController;
private WebStorageSizeManager mWebStorageSizeManager;
private AutofillHandler mAutofillHandler;
- private WeakHashMap<WebSettings, String> mCustomUserAgents;
private static boolean sInitialized = false;
private boolean mNeedsSharedSync = true;
private float mFontSizeMult = 1.0f;
@@ -146,7 +115,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
mContext = context.getApplicationContext();
mPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
mManagedSettings = new LinkedList<WeakReference<WebSettings>>();
- mCustomUserAgents = new WeakHashMap<WebSettings, String>();
BackgroundHandler.execute(mSetup);
}
@@ -290,7 +258,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
settings.setSaveFormData(saveFormdata());
settings.setUseWideViewPort(isWideViewport());
settings.setDoNotTrack(doNotTrack());
- setUserAgent(settings);
settings.setMediaPlaybackRequiresUserGesture(false);
settings.setAllowMediaDownloads(allowMediaDownloads());
setExtraHTTPRequestHeaders(settings);
@@ -318,22 +285,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
settingsClassic.setLinkPrefetchEnabled(mLinkPrefetchAllowed);
}
- private void setUserAgent(WebSettings settings){
- String ua = mContext.getResources().getString(R.string.def_useragent);
-
- if (!TextUtils.isEmpty(ua))
- ua = constructUserAgent(ua);
-
- if (TextUtils.isEmpty(ua))
- ua = mCustomUserAgents.get(settings);
-
- if (!TextUtils.isEmpty(ua)){
- settings.setUserAgentString(ua);
- } else {
- settings.setUserAgentString(USER_AGENTS[getUserAgent()]);
- }
- }
-
private void setExtraHTTPRequestHeaders(WebSettings settings){
String headers = mContext.getResources().getString(R.string.def_extra_http_headers);
if (!TextUtils.isEmpty(headers)){
@@ -341,19 +292,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
}
}
- private String constructUserAgent(String userAgent) {
- try {
- userAgent = userAgent.replaceAll("<%build_model>", Build.MODEL);
- userAgent = userAgent.replaceAll("<%build_version>", Build.VERSION.RELEASE);
- userAgent = userAgent.replaceAll("<%build_id>", Build.ID);
- userAgent = userAgent.replaceAll("<%language>", Locale.getDefault().getLanguage());
- userAgent = userAgent.replaceAll("<%country>", Locale.getDefault().getCountry());
- return userAgent;
- } catch (Exception ex) {
- return null;
- }
- }
-
/**
* Syncs all the settings that have no UI
* These cannot change, so we only need to set them once per WebSettings
@@ -650,21 +588,17 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
}
public boolean hasDesktopUseragent(WebView view) {
- return view != null && mCustomUserAgents.get(view.getSettings()) != null;
+ return view != null && view.getUseDesktopUserAgent();
}
public void toggleDesktopUseragent(WebView view) {
if (view == null) {
return;
}
- WebSettings settings = view.getSettings();
- if (mCustomUserAgents.get(settings) != null) {
- mCustomUserAgents.remove(settings);
- setUserAgent(settings);
- } else {
- mCustomUserAgents.put(settings, DESKTOP_USERAGENT);
- settings.setUserAgentString(DESKTOP_USERAGENT);
- }
+ if (hasDesktopUseragent(view))
+ view.setUseDesktopUserAgent(false, true);
+ else
+ view.setUseDesktopUserAgent(true, true);
}
public static int getAdjustedMinimumFontSize(int rawValue) {
@@ -878,13 +812,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
return mPrefs.getBoolean(PREF_ENABLE_HARDWARE_ACCEL_SKIA, false);
}
- public int getUserAgent() {
- if (!isDebugEnabled()) {
- return 0;
- }
- return Integer.parseInt(mPrefs.getString(PREF_USER_AGENT, "0"));
- }
-
// -----------------------------
// getter/setters for hidden_debug_preferences.xml
// -----------------------------