Fix strict mode violation in GoogleAccountLogin

Do not call WebView methods from a background thread.

Bug: 5090601
Change-Id: If72d86c6a68932787b14d7eb11c3a351ac1f8385
diff --git a/src/com/android/browser/GoogleAccountLogin.java b/src/com/android/browser/GoogleAccountLogin.java
index 3896560..2bd3c8c 100644
--- a/src/com/android/browser/GoogleAccountLogin.java
+++ b/src/com/android/browser/GoogleAccountLogin.java
@@ -67,6 +67,7 @@
     private String mLsid;
     private int mState;  // {NONE(0), SID(1), LSID(2)}
     private boolean mTokensInvalidated;
+    private String mUserAgent;
 
     private GoogleAccountLogin(Activity activity, Account account,
             Runnable runnable) {
@@ -74,6 +75,7 @@
         mAccount = account;
         mWebView = new WebView(mActivity);
         mRunnable = runnable;
+        mUserAgent = mWebView.getSettings().getUserAgentString();
 
         // XXX: Doing pre-login causes onResume to skip calling
         // resumeWebViewTimers. So to avoid problems with timers not running, we
@@ -106,17 +108,8 @@
                 .appendQueryParameter("SID", mSid)
                 .appendQueryParameter("LSID", mLsid)
                 .build().toString();
-        // Check mRunnable to see if the request has been canceled.  Otherwise
-        // we might access a destroyed WebView.
-        String ua = null;
-        synchronized (this) {
-            if (mRunnable == null) {
-                return;
-            }
-            ua = mWebView.getSettings().getUserAgentString();
-        }
         // Intentionally not using Proxy.
-        AndroidHttpClient client = AndroidHttpClient.newInstance(ua);
+        AndroidHttpClient client = AndroidHttpClient.newInstance(mUserAgent);
         HttpPost request = new HttpPost(url);
 
         String result = null;