1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // 5 // Contains the definition of a few helper functions used for generating sync 6 // URLs. 7 8 #include "chrome/browser/sync/engine/net/url_translator.h" 9 10 #include "base/basictypes.h" 11 #include "base/port.h" 12 #include "net/base/escape.h" 13 14 using std::string; 15 16 namespace browser_sync { 17 18 namespace { 19 // Parameters that the server understands. (here, a-Z) 20 const char kParameterAuthToken[] = "auth"; 21 const char kParameterClientID[] = "client_id"; 22 } 23 24 // Convenience wrappers around CgiEscapePath(). 25 string CgiEscapeString(const char* src) { 26 return CgiEscapeString(string(src)); 27 } 28 29 string CgiEscapeString(const string& src) { 30 return EscapeUrlEncodedData(src); 31 } 32 33 // This method appends the query string to the sync server path. 34 string MakeSyncServerPath(const string& path, const string& query_string) { 35 string result = path; 36 result.append("?"); 37 result.append(query_string); 38 return result; 39 } 40 41 string MakeSyncQueryString(const string& client_id) { 42 string query; 43 query += kParameterClientID; 44 query += "=" + CgiEscapeString(client_id); 45 return query; 46 } 47 48 } // namespace browser_sync 49