1 // Copyright (c) 2012 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 "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 syncer { 17 18 namespace { 19 // Parameters that the server understands. (here, a-Z) 20 const char kParameterClient[] = "client"; 21 const char kParameterClientID[] = "client_id"; 22 23 #if defined(GOOGLE_CHROME_BUILD) 24 const char kClientName[] = "Google Chrome"; 25 #else 26 const char kClientName[] = "Chromium"; 27 #endif // defined(GOOGLE_CHROME_BUILD) 28 } 29 30 // Convenience wrappers around CgiEscapePath(). 31 string CgiEscapeString(const char* src) { 32 return CgiEscapeString(string(src)); 33 } 34 35 string CgiEscapeString(const string& src) { 36 return net::EscapeUrlEncodedData(src, true); 37 } 38 39 // This method appends the query string to the sync server path. 40 string MakeSyncServerPath(const string& path, const string& query_string) { 41 string result = path; 42 result.append("?"); 43 result.append(query_string); 44 return result; 45 } 46 47 string MakeSyncQueryString(const string& client_id) { 48 string query; 49 query += kParameterClient; 50 query += "=" + CgiEscapeString(kClientName); 51 query += "&"; 52 query += kParameterClientID; 53 query += "=" + CgiEscapeString(client_id); 54 return query; 55 } 56 57 } // namespace syncer 58