AI 144094: am: CL 144044 First cut of tunneling HTTP requests over gtalk connection:
  - We define HttpRequest and HttpResponse protocol buffers.
  The RMQ mechanism is *not* used for these (though the
  messages define rmq id fields in case we want to start).
  - GTalkHttpClient will send an http request over the
  connection to MCS if:
  - gtalk_tunnel_http in gservices is turned on
  - the request destination is the android proxy
  - it can make a connection to gtalkservice
  The request falls back to using GoogleHttpClient if it can't
  be processed over the MCS connection.
  A few shortcuts are taken with cookie handling, but these
  are okay for the envisioned usage.
  Original author: dougz
  Merged from: //branches/donutburger/...

Automated import of CL 144094
diff --git a/core/java/com/google/android/net/GoogleHttpClient.java b/core/java/com/google/android/net/GoogleHttpClient.java
index ac9ad73..871c925 100644
--- a/core/java/com/google/android/net/GoogleHttpClient.java
+++ b/core/java/com/google/android/net/GoogleHttpClient.java
@@ -196,6 +196,12 @@
         }
     }
 
+    public String rewriteURI(String original) {
+        UrlRules rules = UrlRules.getRules(mResolver);
+        UrlRules.Rule rule = rules.matchRule(original);
+        return rule.apply(original);
+    }
+
     public HttpResponse execute(HttpUriRequest request, HttpContext context)
             throws IOException {
         // Rewrite the supplied URL...
@@ -262,7 +268,7 @@
      *
      * @param originalUserAgent to modify (however you identify yourself)
      * @return user agent with a "yes, I really can handle gzip" token added.
-     * @deprecated Use {@link #GoogleHttpClient(android.content.ContentResolver, String, boolean)} 
+     * @deprecated Use {@link #GoogleHttpClient(android.content.ContentResolver, String, boolean)}
      */
     public static String getGzipCapableUserAgent(String originalUserAgent) {
         return originalUserAgent + "; gzip";