diff options
author | Vivek Sekhar <vsekhar@codeaurora.org> | 2014-11-13 16:20:11 -0800 |
---|---|---|
committer | Vivek Sekhar <vsekhar@codeaurora.org> | 2014-11-20 15:47:23 -0800 |
commit | 7b3d2daaf37c1a5e9f5a9b482c13c9f25b170b27 (patch) | |
tree | f342c5c9bd563f4976bb270a6b2bd35e36231c09 /src/com/android/browser/BrowserSettings.java | |
parent | 5712096ce835175100b2847ff665b26abce55f0c (diff) | |
download | android_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.java | 83 |
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 // ----------------------------- |