Cherry-pick "[android_webview] Hardcode the default text encoding to UTF-8."

The WebView will use a fixed default value for the text encoding instead
of getting it from the platform. This is in attempt to unify behavior
between devices.

BUG=422366

Review URL: https://codereview.chromium.org/639113004

Cr-Commit-Position: refs/heads/master@{#299287}

Conflicts:
	DEPS
	android_webview/buildbot/aosp_manifest.xml
	android_webview/renderer/aw_content_renderer_client.h
	chrome/renderer/chrome_content_renderer_client.h

Change-Id: I0b4f507e6e439561bf89e3a0e668910cbf0c9e08
diff --git a/DEPS b/DEPS
index 2a97a42..93a8de7 100644
--- a/DEPS
+++ b/DEPS
@@ -467,7 +467,7 @@
     # Whenever you roll this please also change frameworks/webview in
     # src/android_webview/buildbot/aosp_manifest.xml to point to the same revision.
     'src/third_party/android_webview_glue/src':
-     Var('chromium_git') + '/external/android_webview_glue.git' + '@' + 'a1b0248c80f239e2f6476b9f395b27d0ba1eb3cd',
+     Var('chromium_git') + '/external/android_webview_glue.git' + '@' + '7d62eab4ca242beacac4471c002e998ef5c218b8',
 
     'src/third_party/android_tools':
      Var('chromium_git') + '/android_tools.git' + '@' + 'd2b86205ff973a3844020feacb35ca6b1d82efbe',
diff --git a/android_webview/buildbot/aosp_manifest.xml b/android_webview/buildbot/aosp_manifest.xml
index e4fabd7..3b6755b 100644
--- a/android_webview/buildbot/aosp_manifest.xml
+++ b/android_webview/buildbot/aosp_manifest.xml
@@ -8,7 +8,7 @@
 
   <!-- Whenever you roll this please also change frameworks/webview in DEPS to point to the
        same revision. -->
-  <project name="platform/frameworks/webview" path="frameworks/webview" revision="a1b0248c80f239e2f6476b9f395b27d0ba1eb3cd"/>
+  <project name="platform/frameworks/webview" path="frameworks/webview" revision="7d62eab4ca242beacac4471c002e998ef5c218b8"/>
 
   <project groups="device,flo" name="device/asus/deb" revision="0ce3a783d549d023ddc553a04fed717ffb2ff533"/>
   <project groups="device,flo" name="device/asus/flo" revision="55ea79b11f9f82b2aa03f44a3429112fc5c06d07"/>
diff --git a/android_webview/common/aw_resource.h b/android_webview/common/aw_resource.h
index 1ed5e3a..00613c3 100644
--- a/android_webview/common/aw_resource.h
+++ b/android_webview/common/aw_resource.h
@@ -14,7 +14,6 @@
 
 std::string GetLoadErrorPageContent();
 std::string GetNoDomainPageContent();
-std::string GetDefaultTextEncoding();
 
 }  // namespace AwResource
 }  // namsespace android_webview
diff --git a/android_webview/java/src/org/chromium/android_webview/AwResource.java b/android_webview/java/src/org/chromium/android_webview/AwResource.java
index b5c1a54..e74206d 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwResource.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwResource.java
@@ -32,9 +32,6 @@
     // a generic load error. (It's called NO_DOMAIN for legacy reasons).
     private static int sRawNoDomain;
 
-    // String resource ID for the default text encoding to use.
-    private static int sStringDefaultTextEncoding;
-
     // Array resource ID for the configuration of platform specific key-systems.
     private static int sStringArrayConfigKeySystemUUIDMapping;
 
@@ -58,20 +55,11 @@
         sRawNoDomain = nodomain;
     }
 
-    public static void setDefaultTextEncoding(int encoding) {
-        sStringDefaultTextEncoding = encoding;
-    }
-
     public static void setConfigKeySystemUuidMapping(int config) {
         sStringArrayConfigKeySystemUUIDMapping = config;
     }
 
     @CalledByNative
-    public static String getDefaultTextEncoding() {
-        return getResource(sStringDefaultTextEncoding, TYPE_STRING);
-    }
-
-    @CalledByNative
     public static String getNoDomainPageContent() {
         return getResource(sRawNoDomain, TYPE_RAW);
     }
diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
index f8aad73..2bd5de7 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
@@ -68,7 +68,7 @@
     private String mSerifFontFamily = "serif";
     private String mCursiveFontFamily = "cursive";
     private String mFantasyFontFamily = "fantasy";
-    private String mDefaultTextEncoding;
+    private String mDefaultTextEncoding = "UTF-8";
     private String mUserAgent;
     private int mMinimumFontSize = 8;
     private int mMinimumLogicalFontSize = 8;
@@ -227,7 +227,6 @@
                 mAllowFileAccessFromFileURLs = true;
             }
 
-            mDefaultTextEncoding = AwResource.getDefaultTextEncoding();
             mUserAgent = LazyDefaultUserAgent.sInstance;
 
             // Best-guess a sensible initial value based on the features supported on the device.
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java
index 9ecf971..87d23c2 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java
@@ -434,12 +434,12 @@
 
         @Override
         protected String getAlteredValue() {
-            return "utf-8";
+            return "Latin-1";
         }
 
         @Override
         protected String getInitialValue() {
-            return "Latin-1";
+            return "UTF-8";
         }
 
         @Override
diff --git a/android_webview/native/aw_resource.cc b/android_webview/native/aw_resource.cc
index cf4b6f4..498a201 100644
--- a/android_webview/native/aw_resource.cc
+++ b/android_webview/native/aw_resource.cc
@@ -30,13 +30,6 @@
   return base::android::ConvertJavaStringToUTF8(content);
 }
 
-std::string GetDefaultTextEncoding() {
-  JNIEnv* env = base::android::AttachCurrentThread();
-  ScopedJavaLocalRef<jstring> encoding =
-      Java_AwResource_getDefaultTextEncoding(env);
-  return base::android::ConvertJavaStringToUTF8(encoding);
-}
-
 bool RegisterAwResource(JNIEnv* env) {
   return RegisterNativesImpl(env);
 }
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index caa372d..7ba28d9 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -147,10 +147,6 @@
   new autofill::AutofillAgent(render_view, password_autofill_agent, NULL);
 }
 
-std::string AwContentRendererClient::GetDefaultEncoding() {
-  return AwResource::GetDefaultTextEncoding();
-}
-
 bool AwContentRendererClient::HasErrorPage(int http_status_code,
                           std::string* error_domain) {
   return http_status_code >= 400;
diff --git a/android_webview/renderer/aw_content_renderer_client.h b/android_webview/renderer/aw_content_renderer_client.h
index 23b3c7a..49480ca 100644
--- a/android_webview/renderer/aw_content_renderer_client.h
+++ b/android_webview/renderer/aw_content_renderer_client.h
@@ -25,7 +25,6 @@
   virtual void RenderThreadStarted() OVERRIDE;
   virtual void RenderFrameCreated(content::RenderFrame* render_frame) OVERRIDE;
   virtual void RenderViewCreated(content::RenderView* render_view) OVERRIDE;
-  virtual std::string GetDefaultEncoding() OVERRIDE;
   virtual bool HasErrorPage(int http_status_code,
                             std::string* error_domain) OVERRIDE;
   virtual void GetNavigationErrorStrings(
diff --git a/android_webview/test/shell/res/values/strings.xml b/android_webview/test/shell/res/values/strings.xml
deleted file mode 100644
index a62403f..0000000
--- a/android_webview/test/shell/res/values/strings.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-Copyright (c) 2012 The Chromium Authors. All rights reserved.
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-
-<resources>
-    <string name="default_encoding">Latin-1</string>
-</resources>
diff --git a/android_webview/test/shell/src/org/chromium/android_webview/shell/AwShellResourceProvider.java b/android_webview/test/shell/src/org/chromium/android_webview/shell/AwShellResourceProvider.java
index d086fe1..beb2d0f 100644
--- a/android_webview/test/shell/src/org/chromium/android_webview/shell/AwShellResourceProvider.java
+++ b/android_webview/test/shell/src/org/chromium/android_webview/shell/AwShellResourceProvider.java
@@ -23,8 +23,6 @@
 
         AwResource.setErrorPageResources(R.raw.error, R.raw.blank_html);
 
-        AwResource.setDefaultTextEncoding(R.string.default_encoding);
-
         AwResource.setConfigKeySystemUuidMapping(R.array.config_key_system_uuid_mapping);
 
         sInitialized = true;
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 1c00616..c5c6ee4 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -537,10 +537,6 @@
       GetImageNamed(IDR_SAD_WEBVIEW).ToSkBitmap());
 }
 
-std::string ChromeContentRendererClient::GetDefaultEncoding() {
-  return l10n_util::GetStringUTF8(IDS_DEFAULT_ENCODING);
-}
-
 #if defined(ENABLE_EXTENSIONS)
 const Extension* ChromeContentRendererClient::GetExtensionByOrigin(
     const WebSecurityOrigin& origin) const {
diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h
index f8cfbb0..550fa15 100644
--- a/chrome/renderer/chrome_content_renderer_client.h
+++ b/chrome/renderer/chrome_content_renderer_client.h
@@ -81,7 +81,6 @@
   virtual void SetNumberOfViews(int number_of_views) OVERRIDE;
   virtual SkBitmap* GetSadPluginBitmap() OVERRIDE;
   virtual SkBitmap* GetSadWebViewBitmap() OVERRIDE;
-  virtual std::string GetDefaultEncoding() OVERRIDE;
   virtual bool OverrideCreatePlugin(
       content::RenderFrame* render_frame,
       blink::WebLocalFrame* frame,
diff --git a/content/public/renderer/content_renderer_client.cc b/content/public/renderer/content_renderer_client.cc
index 2435d2c..a6ae7f0 100644
--- a/content/public/renderer/content_renderer_client.cc
+++ b/content/public/renderer/content_renderer_client.cc
@@ -14,10 +14,6 @@
   return NULL;
 }
 
-std::string ContentRendererClient::GetDefaultEncoding() {
-  return std::string();
-}
-
 bool ContentRendererClient::OverrideCreatePlugin(
     RenderFrame* render_frame,
     blink::WebLocalFrame* frame,
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index 55db98c..20641de 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -84,9 +84,6 @@
   // none.
   virtual SkBitmap* GetSadWebViewBitmap();
 
-  // Returns the default text encoding.
-  virtual std::string GetDefaultEncoding();
-
   // Allows the embedder to override creating a plugin. If it returns true, then
   // |plugin| will contain the created plugin, although it could be NULL. If it
   // returns false, the content layer will create the plugin.