[AiS] Make base64 encoding URL-safe.

BUG=370192
[email protected]

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271233 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc
index d32fd71..6260cf6 100644
--- a/chrome/browser/autocomplete/search_provider.cc
+++ b/chrome/browser/autocomplete/search_provider.cc
@@ -1150,6 +1150,10 @@
     std::string raw_data;
     base::RandBytes(WriteInto(&raw_data, kTokenBytes + 1), kTokenBytes);
     base::Base64Encode(raw_data, &current_token_);
+
+    // Make the base64 encoded value URL and filename safe(see RFC 3548).
+    std::replace(current_token_.begin(), current_token_.end(), '+', '-');
+    std::replace(current_token_.begin(), current_token_.end(), '/', '_');
   }
 
   // Extend expiration time another 60 seconds.